1 /* Preferences.c */
2 /**********************************************************************************************************
3 Copyright (c) 2002-2013 Abdul-Rahman Allouche. All rights reserved
4 
5 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
6 documentation files (the Gabedit), to deal in the Software without restriction, including without limitation
7 the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
8 and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
9 
10   The above copyright notice and this permission notice shall be included in all copies or substantial portions
11   of the Software.
12 
13 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
14 TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
15 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
16 CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17 DEALINGS IN THE SOFTWARE.
18 ************************************************************************************************************/
19 
20 
21 #include "../../Config.h"
22 #include <stdlib.h>
23 #include <GL/gl.h>
24 #include <GL/glu.h>
25 #include "Global.h"
26 #include "../Common/Help.h"
27 #include "../Utils/UtilsInterface.h"
28 #include "../Utils/AtomsProp.h"
29 #include "../Utils/Utils.h"
30 #include "../Utils/Constants.h"
31 #include "Windows.h"
32 #include "TextEdit.h"
33 #include "../Utils/Vector3d.h"
34 #include "../Display/PreferencesOrb.h"
35 #include "../Display/GLArea.h"
36 #include "../Display/UtilsOrb.h"
37 #include "../Geometry/ResultsAnalise.h"
38 #include "../Geometry/GeomGlobal.h"
39 #include "../Files/FolderChooser.h"
40 #include "../Files/GabeditFolderChooser.h"
41 void rafresh_drawing();
42 void set_color_surface(gint num,gdouble v[]);
43 #include "../../pixmaps/Open.xpm"
44 static GtkWidget* entrybabel = NULL;
45 
46 GtkWidget *NoteBook;
47 static GtkWidget *Wins = NULL;
48 static GtkWidget *EntryDeMon = NULL;
49 static GtkWidget *EntryGamess = NULL;
50 static GtkWidget *EntryGaussian = NULL;
51 static GtkWidget *EntryMolcas = NULL;
52 static GtkWidget *EntryMolpro = NULL;
53 static GtkWidget *EntryMopac = NULL;
54 static GtkWidget *EntryPovray = NULL;
55 static GtkWidget *EntryMPQC = NULL;
56 static GtkWidget *EntryFireFly = NULL;
57 static GtkWidget *EntryQChem = NULL;
58 static GtkWidget *EntryOrca = NULL;
59 static GtkWidget *EntryNWChem = NULL;
60 static GtkWidget *EntryPsicode = NULL;
61 
62 static GtkWidget *ComboDeMon = NULL;
63 static GtkWidget *ComboGamess = NULL;
64 static GtkWidget *ComboGaussian = NULL;
65 static GtkWidget *ComboMolcas = NULL;
66 static GtkWidget *ComboMolpro = NULL;
67 static GtkWidget *ComboMopac = NULL;
68 static GtkWidget *ComboPovray = NULL;
69 static GtkWidget *ComboMPQC = NULL;
70 static GtkWidget *ComboFireFly = NULL;
71 static GtkWidget *ComboQChem = NULL;
72 static GtkWidget *ComboOrca = NULL;
73 static GtkWidget *ComboNWChem = NULL;
74 static GtkWidget *ComboPsicode = NULL;
75 
76 static GtkWidget *ButtonDeMon = NULL;
77 static GtkWidget *ButtonGamess = NULL;
78 static GtkWidget *ButtonGaussian = NULL;
79 static GtkWidget *ButtonMolcas = NULL;
80 static GtkWidget *ButtonMolpro = NULL;
81 static GtkWidget *ButtonMopac = NULL;
82 static GtkWidget *ButtonPovray = NULL;
83 static GtkWidget *ButtonMPQC = NULL;
84 static GtkWidget *ButtonFireFly = NULL;
85 static GtkWidget *ButtonQChem = NULL;
86 static GtkWidget *ButtonOrca = NULL;
87 static GtkWidget *ButtonNWChem = NULL;
88 static GtkWidget *ButtonPsicode = NULL;
89 
90 static GtkWidget *EntryBatchType = NULL;
91 GtkWidget *selectors[3];
92 GdkColor ColorTemp;
93 gchar *FontTemp;
94 static gboolean instal = FALSE;
95 
96 /********************************************************************************/
destroy_preferences_window(GtkWidget * Win)97 void destroy_preferences_window(GtkWidget*Win)
98 {
99   destroy_children(Wins);
100   Wins = NULL;
101 }
102 /********************************************************************************/
modify_color_surfaces()103 void  modify_color_surfaces()
104 {
105 	gdouble Col[4];
106 	GdkColor color;
107 
108 	/* positive value */
109 	gtk_color_button_get_color ((GtkColorButton*)selectors[0], &color);
110 	Col[0] = color.red/65535.0;
111 	Col[1] = color.green/65535.0;
112 	Col[2] = color.blue/65535.0;
113 	set_color_surface(0,Col);
114 
115 	/* negative value */
116 	gtk_color_button_get_color ((GtkColorButton*)selectors[1], &color);
117 	Col[0] = color.red/65535.0;
118 	Col[1] = color.green/65535.0;
119 	Col[2] = color.blue/65535.0;
120 	set_color_surface(1,Col);
121 	/* density surface */
122 	gtk_color_button_get_color ((GtkColorButton*)selectors[2], &color);
123 	Col[0] = color.red/65535.0;
124 	Col[1] = color.green/65535.0;
125 	Col[2] = color.blue/65535.0;
126 	set_color_surface(2,Col);
127 	rafresh_window_orb();
128 }
129 /********************************************************************************/
create_color_surfaces(GtkWidget * Wins,GtkWidget * Frame)130 void  create_color_surfaces(GtkWidget *Wins,GtkWidget *Frame)
131 {
132   GtkWidget *vbox;
133 
134   vbox = create_vbox(Frame);
135 
136   create_colorsel_frame(vbox,NULL,selectors);
137 }
138 /********************************************************************************/
remove_gamess_command()139 static void  remove_gamess_command()
140 {
141   G_CONST_RETURN gchar *strcom;
142   GList *glist = NULL;
143   gint i;
144   gint inList = -1;
145 
146   if(gamessCommands.numberOfCommands<2)
147 	  return;
148 
149   strcom = gtk_entry_get_text (GTK_ENTRY (EntryGamess));
150 
151   for(i=0;i<gamessCommands.numberOfCommands;i++)
152   {
153 	  if(strcmp(strcom,gamessCommands.commands[i])==0)
154 	  {
155 		  inList = i;
156 		  break;
157 	  }
158   }
159   if(inList == -1)
160 	  return;
161   for(i=inList;i<gamessCommands.numberOfCommands-1;i++)
162 	  gamessCommands.commands[i] = gamessCommands.commands[i+1];
163 
164   gamessCommands.numberOfCommands--;
165   gamessCommands.commands = g_realloc(
166 		   gamessCommands.commands,
167 		   gamessCommands.numberOfCommands*sizeof(gchar*));
168 
169   for(i=0;i<gamessCommands.numberOfCommands;i++)
170 	glist = g_list_append(glist,gamessCommands.commands[i]);
171 
172   gtk_combo_box_entry_set_popdown_strings( ComboGamess, glist) ;
173 
174   g_list_free(glist);
175 
176   if(gamessCommands.numberOfCommands<2) gtk_widget_set_sensitive(ButtonGamess, FALSE);
177   else gtk_widget_set_sensitive(ButtonGamess, TRUE);
178 
179   NameCommandGamess = g_strdup(gamessCommands.commands[0]);
180 
181   str_delete_n(NameCommandGamess);
182   delete_last_spaces(NameCommandGamess);
183   delete_first_spaces(NameCommandGamess);
184 }
185 /********************************************************************************/
modify_gamess_command()186 void  modify_gamess_command()
187 {
188   G_CONST_RETURN gchar *strcom;
189   GList *glist = NULL;
190   gint i;
191 
192   strcom = gtk_entry_get_text (GTK_ENTRY (EntryGamess));
193   if(strcmp(strcom,""))
194       NameCommandGamess = g_strdup(strcom);
195 
196   str_delete_n(NameCommandGamess);
197   delete_last_spaces(NameCommandGamess);
198   delete_first_spaces(NameCommandGamess);
199 
200   for(i=0;i<gamessCommands.numberOfCommands;i++)
201   {
202 	  if(strcmp(NameCommandGamess,gamessCommands.commands[i])==0)
203 		  return;
204   }
205   gamessCommands.numberOfCommands++;
206   gamessCommands.commands = g_realloc(
207 		   gamessCommands.commands,
208 		   gamessCommands.numberOfCommands*sizeof(gchar*));
209   gamessCommands.commands[gamessCommands.numberOfCommands-1] = g_strdup(NameCommandGamess);
210 
211   for(i=gamessCommands.numberOfCommands-1;i>=0;i--)
212 	glist = g_list_append(glist,gamessCommands.commands[i]);
213 
214   gtk_combo_box_entry_set_popdown_strings( ComboGamess, glist) ;
215 
216   g_list_free(glist);
217   if(gamessCommands.numberOfCommands<2) gtk_widget_set_sensitive(ButtonGamess, FALSE);
218   else gtk_widget_set_sensitive(ButtonGamess, TRUE);
219 }
220 /********************************************************************************/
remove_gaussian_command()221 static void  remove_gaussian_command()
222 {
223   G_CONST_RETURN gchar *strcom;
224   GList *glist = NULL;
225   gint i;
226   gint inList = -1;
227 
228   if(gaussianCommands.numberOfCommands<2)
229 	  return;
230 
231   strcom = gtk_entry_get_text (GTK_ENTRY (EntryGaussian));
232 
233   for(i=0;i<gaussianCommands.numberOfCommands;i++)
234   {
235 	  if(strcmp(strcom,gaussianCommands.commands[i])==0)
236 	  {
237 		  inList = i;
238 		  break;
239 	  }
240   }
241   if(inList == -1)
242 	  return;
243   for(i=inList;i<gaussianCommands.numberOfCommands-1;i++)
244 	  gaussianCommands.commands[i] = gaussianCommands.commands[i+1];
245 
246   gaussianCommands.numberOfCommands--;
247   gaussianCommands.commands = g_realloc(
248 		   gaussianCommands.commands,
249 		   gaussianCommands.numberOfCommands*sizeof(gchar*));
250 
251   for(i=0;i<gaussianCommands.numberOfCommands;i++)
252 	glist = g_list_append(glist,gaussianCommands.commands[i]);
253 
254   gtk_combo_box_entry_set_popdown_strings( ComboGaussian, glist) ;
255 
256   g_list_free(glist);
257 
258   if(gaussianCommands.numberOfCommands<2) gtk_widget_set_sensitive(ButtonGaussian, FALSE);
259   else gtk_widget_set_sensitive(ButtonGaussian, TRUE);
260 
261   NameCommandGaussian = g_strdup(gaussianCommands.commands[0]);
262 
263   str_delete_n(NameCommandGaussian);
264   delete_last_spaces(NameCommandGaussian);
265   delete_first_spaces(NameCommandGaussian);
266 }
267 /********************************************************************************/
modify_gaussian_command()268 void  modify_gaussian_command()
269 {
270   G_CONST_RETURN gchar *strcom;
271   GList *glist = NULL;
272   gint i;
273 
274   strcom = gtk_entry_get_text (GTK_ENTRY (EntryGaussian));
275   if(strcmp(strcom,""))
276       NameCommandGaussian = g_strdup(strcom);
277 
278   str_delete_n(NameCommandGaussian);
279   delete_last_spaces(NameCommandGaussian);
280   delete_first_spaces(NameCommandGaussian);
281 
282   for(i=0;i<gaussianCommands.numberOfCommands;i++)
283   {
284 	  if(strcmp(NameCommandGaussian,gaussianCommands.commands[i])==0)
285 		  return;
286   }
287   gaussianCommands.numberOfCommands++;
288   gaussianCommands.commands = g_realloc(
289 		   gaussianCommands.commands,
290 		   gaussianCommands.numberOfCommands*sizeof(gchar*));
291   gaussianCommands.commands[gaussianCommands.numberOfCommands-1] = g_strdup(NameCommandGaussian);
292 
293   for(i=gaussianCommands.numberOfCommands-1;i>=0;i--)
294 	glist = g_list_append(glist,gaussianCommands.commands[i]);
295 
296   gtk_combo_box_entry_set_popdown_strings( ComboGaussian, glist) ;
297 
298   g_list_free(glist);
299   if(gaussianCommands.numberOfCommands<2) gtk_widget_set_sensitive(ButtonGaussian, FALSE);
300   else gtk_widget_set_sensitive(ButtonGaussian, TRUE);
301 }
302 /********************************************************************************/
remove_molcas_command()303 static void  remove_molcas_command()
304 {
305   G_CONST_RETURN gchar *strcom;
306   GList *glist = NULL;
307   gint i;
308   gint inList = -1;
309 
310   if(molcasCommands.numberOfCommands<2)
311 	  return;
312 
313   strcom = gtk_entry_get_text (GTK_ENTRY (EntryMolcas));
314 
315   for(i=0;i<molcasCommands.numberOfCommands;i++)
316   {
317 	  if(strcmp(strcom,molcasCommands.commands[i])==0)
318 	  {
319 		  inList = i;
320 		  break;
321 	  }
322   }
323   if(inList == -1)
324 	  return;
325   for(i=inList;i<molcasCommands.numberOfCommands-1;i++)
326 	  molcasCommands.commands[i] = molcasCommands.commands[i+1];
327 
328   molcasCommands.numberOfCommands--;
329   molcasCommands.commands = g_realloc(
330 		   molcasCommands.commands,
331 		   molcasCommands.numberOfCommands*sizeof(gchar*));
332 
333   for(i=0;i<molcasCommands.numberOfCommands;i++)
334 	glist = g_list_append(glist,molcasCommands.commands[i]);
335 
336   gtk_combo_box_entry_set_popdown_strings( ComboMolcas, glist) ;
337 
338   g_list_free(glist);
339 
340   if(molcasCommands.numberOfCommands<2)
341   	gtk_widget_set_sensitive(ButtonMolcas, FALSE);
342   else
343   	gtk_widget_set_sensitive(ButtonMolcas, TRUE);
344 
345   NameCommandMolcas = g_strdup(molcasCommands.commands[0]);
346 
347   str_delete_n(NameCommandMolcas);
348   delete_last_spaces(NameCommandMolcas);
349   delete_first_spaces(NameCommandMolcas);
350 }
351 /********************************************************************************/
modify_molcas_command()352 void  modify_molcas_command()
353 {
354   G_CONST_RETURN gchar *strcom;
355   GList *glist = NULL;
356   gint i;
357 
358   strcom = gtk_entry_get_text (GTK_ENTRY (EntryMolcas));
359   if(strcmp(strcom,""))
360       NameCommandMolcas = g_strdup(strcom);
361 
362   str_delete_n(NameCommandMolcas);
363   delete_last_spaces(NameCommandMolcas);
364   delete_first_spaces(NameCommandMolcas);
365 
366   for(i=0;i<molcasCommands.numberOfCommands;i++)
367   {
368 	  if(strcmp(NameCommandMolcas,molcasCommands.commands[i])==0)
369 		  return;
370   }
371   molcasCommands.numberOfCommands++;
372   molcasCommands.commands = g_realloc(
373 		   molcasCommands.commands,
374 		   molcasCommands.numberOfCommands*sizeof(gchar*));
375   molcasCommands.commands[molcasCommands.numberOfCommands-1] = g_strdup(NameCommandMolcas);
376 
377   for(i=molcasCommands.numberOfCommands-1;i>=0;i--)
378 	glist = g_list_append(glist,molcasCommands.commands[i]);
379 
380   gtk_combo_box_entry_set_popdown_strings( ComboMolcas, glist) ;
381 
382   g_list_free(glist);
383   if(molcasCommands.numberOfCommands<2)
384   	gtk_widget_set_sensitive(ButtonMolcas, FALSE);
385   else
386   	gtk_widget_set_sensitive(ButtonMolcas, TRUE);
387 }
388 /********************************************************************************/
remove_mpqc_command()389 static void  remove_mpqc_command()
390 {
391   G_CONST_RETURN gchar *strcom;
392   GList *glist = NULL;
393   gint i;
394   gint inList = -1;
395 
396   if(mpqcCommands.numberOfCommands<2)
397 	  return;
398 
399   strcom = gtk_entry_get_text (GTK_ENTRY (EntryMPQC));
400 
401   for(i=0;i<mpqcCommands.numberOfCommands;i++)
402   {
403 	  if(strcmp(strcom,mpqcCommands.commands[i])==0)
404 	  {
405 		  inList = i;
406 		  break;
407 	  }
408   }
409   if(inList == -1)
410 	  return;
411   for(i=inList;i<mpqcCommands.numberOfCommands-1;i++)
412 	  mpqcCommands.commands[i] = mpqcCommands.commands[i+1];
413 
414   mpqcCommands.numberOfCommands--;
415   mpqcCommands.commands = g_realloc(
416 		   mpqcCommands.commands,
417 		   mpqcCommands.numberOfCommands*sizeof(gchar*));
418 
419   for(i=0;i<mpqcCommands.numberOfCommands;i++)
420 	glist = g_list_append(glist,mpqcCommands.commands[i]);
421 
422   gtk_combo_box_entry_set_popdown_strings( ComboMPQC, glist) ;
423 
424   g_list_free(glist);
425 
426   if(mpqcCommands.numberOfCommands<2)
427   	gtk_widget_set_sensitive(ButtonMPQC, FALSE);
428   else
429   	gtk_widget_set_sensitive(ButtonMPQC, TRUE);
430 
431   NameCommandMPQC = g_strdup(mpqcCommands.commands[0]);
432 
433   str_delete_n(NameCommandMPQC);
434   delete_last_spaces(NameCommandMPQC);
435   delete_first_spaces(NameCommandMPQC);
436 }
437 /********************************************************************************/
modify_mpqc_command()438 void  modify_mpqc_command()
439 {
440   G_CONST_RETURN gchar *strcom;
441   GList *glist = NULL;
442   gint i;
443 
444   strcom = gtk_entry_get_text (GTK_ENTRY (EntryMPQC));
445   if(strcmp(strcom,""))
446       NameCommandMPQC = g_strdup(strcom);
447 
448   str_delete_n(NameCommandMPQC);
449   delete_last_spaces(NameCommandMPQC);
450   delete_first_spaces(NameCommandMPQC);
451 
452   for(i=0;i<mpqcCommands.numberOfCommands;i++)
453   {
454 	  if(strcmp(NameCommandMPQC,mpqcCommands.commands[i])==0)
455 		  return;
456   }
457   mpqcCommands.numberOfCommands++;
458   mpqcCommands.commands = g_realloc(
459 		   mpqcCommands.commands,
460 		   mpqcCommands.numberOfCommands*sizeof(gchar*));
461   mpqcCommands.commands[mpqcCommands.numberOfCommands-1] = g_strdup(NameCommandMPQC);
462 
463   for(i=mpqcCommands.numberOfCommands-1;i>=0;i--)
464 	glist = g_list_append(glist,mpqcCommands.commands[i]);
465 
466   gtk_combo_box_entry_set_popdown_strings( ComboMPQC, glist) ;
467 
468   g_list_free(glist);
469   if(mpqcCommands.numberOfCommands<2)
470   	gtk_widget_set_sensitive(ButtonMPQC, FALSE);
471   else
472   	gtk_widget_set_sensitive(ButtonMPQC, TRUE);
473 }
474 /********************************************************************************/
remove_molpro_command()475 static void  remove_molpro_command()
476 {
477   G_CONST_RETURN gchar *strcom;
478   GList *glist = NULL;
479   gint i;
480   gint inList = -1;
481 
482   if(molproCommands.numberOfCommands<2)
483 	  return;
484 
485   strcom = gtk_entry_get_text (GTK_ENTRY (EntryMolpro));
486 
487   for(i=0;i<molproCommands.numberOfCommands;i++)
488   {
489 	  if(strcmp(strcom,molproCommands.commands[i])==0)
490 	  {
491 		  inList = i;
492 		  break;
493 	  }
494   }
495   if(inList == -1)
496 	  return;
497   for(i=inList;i<molproCommands.numberOfCommands-1;i++)
498 	  molproCommands.commands[i] = molproCommands.commands[i+1];
499 
500   molproCommands.numberOfCommands--;
501   molproCommands.commands = g_realloc(
502 		   molproCommands.commands,
503 		   molproCommands.numberOfCommands*sizeof(gchar*));
504 
505   for(i=0;i<molproCommands.numberOfCommands;i++)
506 	glist = g_list_append(glist,molproCommands.commands[i]);
507 
508   gtk_combo_box_entry_set_popdown_strings( ComboMolpro, glist) ;
509 
510   g_list_free(glist);
511 
512   if(molproCommands.numberOfCommands<2)
513   	gtk_widget_set_sensitive(ButtonMolpro, FALSE);
514   else
515   	gtk_widget_set_sensitive(ButtonMolpro, TRUE);
516 
517   NameCommandMolpro = g_strdup(molproCommands.commands[0]);
518 
519   str_delete_n(NameCommandMolpro);
520   delete_last_spaces(NameCommandMolpro);
521   delete_first_spaces(NameCommandMolpro);
522 }
523 /********************************************************************************/
modify_molpro_command()524 void  modify_molpro_command()
525 {
526   G_CONST_RETURN gchar *strcom;
527   GList *glist = NULL;
528   gint i;
529 
530   strcom = gtk_entry_get_text (GTK_ENTRY (EntryMolpro));
531   if(strcmp(strcom,""))
532       NameCommandMolpro = g_strdup(strcom);
533 
534   str_delete_n(NameCommandMolpro);
535   delete_last_spaces(NameCommandMolpro);
536   delete_first_spaces(NameCommandMolpro);
537 
538   for(i=0;i<molproCommands.numberOfCommands;i++)
539   {
540 	  if(strcmp(NameCommandMolpro,molproCommands.commands[i])==0)
541 		  return;
542   }
543   molproCommands.numberOfCommands++;
544   molproCommands.commands = g_realloc(
545 		   molproCommands.commands,
546 		   molproCommands.numberOfCommands*sizeof(gchar*));
547   molproCommands.commands[molproCommands.numberOfCommands-1] = g_strdup(NameCommandMolpro);
548 
549   for(i=molproCommands.numberOfCommands-1;i>=0;i--)
550 	glist = g_list_append(glist,molproCommands.commands[i]);
551 
552   gtk_combo_box_entry_set_popdown_strings( ComboMolpro, glist) ;
553 
554   g_list_free(glist);
555   if(molproCommands.numberOfCommands<2)
556   	gtk_widget_set_sensitive(ButtonMolpro, FALSE);
557   else
558   	gtk_widget_set_sensitive(ButtonMolpro, TRUE);
559 }
560 /********************************************************************************/
remove_demon_command()561 static void  remove_demon_command()
562 {
563   G_CONST_RETURN gchar *strcom;
564   GList *glist = NULL;
565   gint i;
566   gint inList = -1;
567 
568   if(demonCommands.numberOfCommands<2)
569 	  return;
570 
571   strcom = gtk_entry_get_text (GTK_ENTRY (EntryDeMon));
572 
573   for(i=0;i<demonCommands.numberOfCommands;i++)
574   {
575 	  if(strcmp(strcom,demonCommands.commands[i])==0)
576 	  {
577 		  inList = i;
578 		  break;
579 	  }
580   }
581   if(inList == -1)
582 	  return;
583   for(i=inList;i<demonCommands.numberOfCommands-1;i++)
584 	  demonCommands.commands[i] = demonCommands.commands[i+1];
585 
586   demonCommands.numberOfCommands--;
587   demonCommands.commands = g_realloc(
588 		   demonCommands.commands,
589 		   demonCommands.numberOfCommands*sizeof(gchar*));
590 
591   for(i=0;i<demonCommands.numberOfCommands;i++)
592 	glist = g_list_append(glist,demonCommands.commands[i]);
593 
594   gtk_combo_box_entry_set_popdown_strings( ComboDeMon, glist) ;
595 
596   g_list_free(glist);
597 
598   if(demonCommands.numberOfCommands<2)
599   	gtk_widget_set_sensitive(ButtonDeMon, FALSE);
600   else
601   	gtk_widget_set_sensitive(ButtonDeMon, TRUE);
602 
603   NameCommandDeMon = g_strdup(demonCommands.commands[0]);
604 
605   str_delete_n(NameCommandDeMon);
606   delete_last_spaces(NameCommandDeMon);
607   delete_first_spaces(NameCommandDeMon);
608 }
609 /********************************************************************************/
modify_demon_command()610 void  modify_demon_command()
611 {
612   G_CONST_RETURN gchar *strcom;
613   GList *glist = NULL;
614   gint i;
615 
616   strcom = gtk_entry_get_text (GTK_ENTRY (EntryDeMon));
617   if(strcmp(strcom,""))
618       NameCommandDeMon = g_strdup(strcom);
619 
620   str_delete_n(NameCommandDeMon);
621   delete_last_spaces(NameCommandDeMon);
622   delete_first_spaces(NameCommandDeMon);
623 
624   for(i=0;i<demonCommands.numberOfCommands;i++)
625   {
626 	  if(strcmp(NameCommandDeMon,demonCommands.commands[i])==0)
627 		  return;
628   }
629   demonCommands.numberOfCommands++;
630   demonCommands.commands = g_realloc(
631 		   demonCommands.commands,
632 		   demonCommands.numberOfCommands*sizeof(gchar*));
633   demonCommands.commands[demonCommands.numberOfCommands-1] = g_strdup(NameCommandDeMon);
634 
635   for(i=demonCommands.numberOfCommands-1;i>=0;i--)
636 	glist = g_list_append(glist,demonCommands.commands[i]);
637 
638   gtk_combo_box_entry_set_popdown_strings( ComboDeMon, glist) ;
639 
640   g_list_free(glist);
641   if(demonCommands.numberOfCommands<2)
642   	gtk_widget_set_sensitive(ButtonDeMon, FALSE);
643   else
644   	gtk_widget_set_sensitive(ButtonDeMon, TRUE);
645 }
646 /********************************************************************************/
647 /********************************************************************************/
remove_firefly_command()648 static void  remove_firefly_command()
649 {
650   G_CONST_RETURN gchar *strcom;
651   GList *glist = NULL;
652   gint i;
653   gint inList = -1;
654 
655   if(fireflyCommands.numberOfCommands<2)
656 	  return;
657 
658   strcom = gtk_entry_get_text (GTK_ENTRY (EntryFireFly));
659 
660   for(i=0;i<fireflyCommands.numberOfCommands;i++)
661   {
662 	  if(strcmp(strcom,fireflyCommands.commands[i])==0)
663 	  {
664 		  inList = i;
665 		  break;
666 	  }
667   }
668   if(inList == -1)
669 	  return;
670   for(i=inList;i<fireflyCommands.numberOfCommands-1;i++)
671 	  fireflyCommands.commands[i] = fireflyCommands.commands[i+1];
672 
673   fireflyCommands.numberOfCommands--;
674   fireflyCommands.commands = g_realloc(
675 		   fireflyCommands.commands,
676 		   fireflyCommands.numberOfCommands*sizeof(gchar*));
677 
678   for(i=0;i<fireflyCommands.numberOfCommands;i++)
679 	glist = g_list_append(glist,fireflyCommands.commands[i]);
680 
681   gtk_combo_box_entry_set_popdown_strings( ComboFireFly, glist) ;
682 
683   g_list_free(glist);
684 
685   if(fireflyCommands.numberOfCommands<2) gtk_widget_set_sensitive(ButtonFireFly, FALSE);
686   else gtk_widget_set_sensitive(ButtonFireFly, TRUE);
687 
688   NameCommandFireFly = g_strdup(fireflyCommands.commands[0]);
689 
690   str_delete_n(NameCommandFireFly);
691   delete_last_spaces(NameCommandFireFly);
692   delete_first_spaces(NameCommandFireFly);
693 }
694 /********************************************************************************/
modify_firefly_command()695 void  modify_firefly_command()
696 {
697   G_CONST_RETURN gchar *strcom;
698   GList *glist = NULL;
699   gint i;
700 
701   strcom = gtk_entry_get_text (GTK_ENTRY (EntryFireFly));
702   if(strcmp(strcom,""))
703       NameCommandFireFly = g_strdup(strcom);
704 
705   str_delete_n(NameCommandFireFly);
706   delete_last_spaces(NameCommandFireFly);
707   delete_first_spaces(NameCommandFireFly);
708 
709   for(i=0;i<fireflyCommands.numberOfCommands;i++)
710   {
711 	  if(strcmp(NameCommandFireFly,fireflyCommands.commands[i])==0)
712 		  return;
713   }
714   fireflyCommands.numberOfCommands++;
715   fireflyCommands.commands = g_realloc(
716 		   fireflyCommands.commands,
717 		   fireflyCommands.numberOfCommands*sizeof(gchar*));
718   fireflyCommands.commands[fireflyCommands.numberOfCommands-1] = g_strdup(NameCommandFireFly);
719 
720   for(i=fireflyCommands.numberOfCommands-1;i>=0;i--)
721 	glist = g_list_append(glist,fireflyCommands.commands[i]);
722 
723   gtk_combo_box_entry_set_popdown_strings( ComboFireFly, glist) ;
724 
725   g_list_free(glist);
726   if(fireflyCommands.numberOfCommands<2) gtk_widget_set_sensitive(ButtonFireFly, FALSE);
727   else gtk_widget_set_sensitive(ButtonFireFly, TRUE);
728 }
729 /********************************************************************************/
remove_mopac_command()730 static void  remove_mopac_command()
731 {
732   G_CONST_RETURN gchar *strcom;
733   GList *glist = NULL;
734   gint i;
735   gint inList = -1;
736 
737   if(mopacCommands.numberOfCommands<2)
738 	  return;
739 
740   strcom = gtk_entry_get_text (GTK_ENTRY (EntryMopac));
741 
742   for(i=0;i<mopacCommands.numberOfCommands;i++)
743   {
744 	  if(strcmp(strcom,mopacCommands.commands[i])==0)
745 	  {
746 		  inList = i;
747 		  break;
748 	  }
749   }
750   if(inList == -1)
751 	  return;
752   for(i=inList;i<mopacCommands.numberOfCommands-1;i++)
753 	  mopacCommands.commands[i] = mopacCommands.commands[i+1];
754 
755   mopacCommands.numberOfCommands--;
756   mopacCommands.commands = g_realloc(
757 		   mopacCommands.commands,
758 		   mopacCommands.numberOfCommands*sizeof(gchar*));
759 
760   for(i=0;i<mopacCommands.numberOfCommands;i++)
761 	glist = g_list_append(glist,mopacCommands.commands[i]);
762 
763   gtk_combo_box_entry_set_popdown_strings( ComboMopac, glist) ;
764 
765   g_list_free(glist);
766 
767   if(mopacCommands.numberOfCommands<2)
768   	gtk_widget_set_sensitive(ButtonMopac, FALSE);
769   else
770   	gtk_widget_set_sensitive(ButtonMopac, TRUE);
771 
772   NameCommandMopac = g_strdup(mopacCommands.commands[0]);
773 
774   str_delete_n(NameCommandMopac);
775   delete_last_spaces(NameCommandMopac);
776   delete_first_spaces(NameCommandMopac);
777 }
778 /********************************************************************************/
modify_mopac_command()779 void  modify_mopac_command()
780 {
781   G_CONST_RETURN gchar *strcom;
782   GList *glist = NULL;
783   gint i;
784 
785   strcom = gtk_entry_get_text (GTK_ENTRY (EntryMopac));
786   if(strcmp(strcom,""))
787       NameCommandMopac = g_strdup(strcom);
788 
789   str_delete_n(NameCommandMopac);
790   delete_last_spaces(NameCommandMopac);
791   delete_first_spaces(NameCommandMopac);
792 
793   for(i=0;i<mopacCommands.numberOfCommands;i++)
794   {
795 	  if(strcmp(NameCommandMopac,mopacCommands.commands[i])==0)
796 		  return;
797   }
798   mopacCommands.numberOfCommands++;
799   mopacCommands.commands = g_realloc(
800 		   mopacCommands.commands,
801 		   mopacCommands.numberOfCommands*sizeof(gchar*));
802   mopacCommands.commands[mopacCommands.numberOfCommands-1] = g_strdup(NameCommandMopac);
803 
804   for(i=mopacCommands.numberOfCommands-1;i>=0;i--)
805 	glist = g_list_append(glist,mopacCommands.commands[i]);
806 
807   gtk_combo_box_entry_set_popdown_strings( ComboMopac, glist) ;
808 
809   g_list_free(glist);
810   if(mopacCommands.numberOfCommands<2)
811   	gtk_widget_set_sensitive(ButtonMopac, FALSE);
812   else
813   	gtk_widget_set_sensitive(ButtonMopac, TRUE);
814 }
815 /********************************************************************************/
remove_qchem_command()816 static void  remove_qchem_command()
817 {
818   G_CONST_RETURN gchar *strcom;
819   GList *glist = NULL;
820   gint i;
821   gint inList = -1;
822 
823   if(qchemCommands.numberOfCommands<2)
824 	  return;
825 
826   strcom = gtk_entry_get_text (GTK_ENTRY (EntryQChem));
827 
828   for(i=0;i<qchemCommands.numberOfCommands;i++)
829   {
830 	  if(strcmp(strcom,qchemCommands.commands[i])==0)
831 	  {
832 		  inList = i;
833 		  break;
834 	  }
835   }
836   if(inList == -1)
837 	  return;
838   for(i=inList;i<qchemCommands.numberOfCommands-1;i++)
839 	  qchemCommands.commands[i] = qchemCommands.commands[i+1];
840 
841   qchemCommands.numberOfCommands--;
842   qchemCommands.commands = g_realloc(
843 		   qchemCommands.commands,
844 		   qchemCommands.numberOfCommands*sizeof(gchar*));
845 
846   for(i=0;i<qchemCommands.numberOfCommands;i++)
847 	glist = g_list_append(glist,qchemCommands.commands[i]);
848 
849   gtk_combo_box_entry_set_popdown_strings( ComboQChem, glist) ;
850 
851   g_list_free(glist);
852 
853   if(qchemCommands.numberOfCommands<2)
854   	gtk_widget_set_sensitive(ButtonQChem, FALSE);
855   else
856   	gtk_widget_set_sensitive(ButtonQChem, TRUE);
857 
858   NameCommandQChem = g_strdup(qchemCommands.commands[0]);
859 
860   str_delete_n(NameCommandQChem);
861   delete_last_spaces(NameCommandQChem);
862   delete_first_spaces(NameCommandQChem);
863 }
864 /********************************************************************************/
modify_qchem_command()865 void  modify_qchem_command()
866 {
867   G_CONST_RETURN gchar *strcom;
868   GList *glist = NULL;
869   gint i;
870 
871   strcom = gtk_entry_get_text (GTK_ENTRY (EntryQChem));
872   if(strcmp(strcom,""))
873       NameCommandQChem = g_strdup(strcom);
874 
875   str_delete_n(NameCommandQChem);
876   delete_last_spaces(NameCommandQChem);
877   delete_first_spaces(NameCommandQChem);
878 
879   for(i=0;i<qchemCommands.numberOfCommands;i++)
880   {
881 	  if(strcmp(NameCommandQChem,qchemCommands.commands[i])==0)
882 		  return;
883   }
884   qchemCommands.numberOfCommands++;
885   qchemCommands.commands = g_realloc(
886 		   qchemCommands.commands,
887 		   qchemCommands.numberOfCommands*sizeof(gchar*));
888   qchemCommands.commands[qchemCommands.numberOfCommands-1] = g_strdup(NameCommandQChem);
889 
890   for(i=qchemCommands.numberOfCommands-1;i>=0;i--)
891 	glist = g_list_append(glist,qchemCommands.commands[i]);
892 
893   gtk_combo_box_entry_set_popdown_strings( ComboQChem, glist) ;
894 
895   g_list_free(glist);
896   if(qchemCommands.numberOfCommands<2)
897   	gtk_widget_set_sensitive(ButtonQChem, FALSE);
898   else
899   	gtk_widget_set_sensitive(ButtonQChem, TRUE);
900 }
901 /********************************************************************************/
remove_orca_command()902 static void  remove_orca_command()
903 {
904   G_CONST_RETURN gchar *strcom;
905   GList *glist = NULL;
906   gint i;
907   gint inList = -1;
908 
909   if(orcaCommands.numberOfCommands<2)
910 	  return;
911 
912   strcom = gtk_entry_get_text (GTK_ENTRY (EntryOrca));
913 
914   for(i=0;i<orcaCommands.numberOfCommands;i++)
915   {
916 	  if(strcmp(strcom,orcaCommands.commands[i])==0)
917 	  {
918 		  inList = i;
919 		  break;
920 	  }
921   }
922   if(inList == -1)
923 	  return;
924   for(i=inList;i<orcaCommands.numberOfCommands-1;i++)
925 	  orcaCommands.commands[i] = orcaCommands.commands[i+1];
926 
927   orcaCommands.numberOfCommands--;
928   orcaCommands.commands = g_realloc(
929 		   orcaCommands.commands,
930 		   orcaCommands.numberOfCommands*sizeof(gchar*));
931 
932   for(i=0;i<orcaCommands.numberOfCommands;i++)
933 	glist = g_list_append(glist,orcaCommands.commands[i]);
934 
935   gtk_combo_box_entry_set_popdown_strings( ComboOrca, glist) ;
936 
937   g_list_free(glist);
938 
939   if(orcaCommands.numberOfCommands<2)
940   	gtk_widget_set_sensitive(ButtonOrca, FALSE);
941   else
942   	gtk_widget_set_sensitive(ButtonOrca, TRUE);
943 
944   NameCommandOrca = g_strdup(orcaCommands.commands[0]);
945 
946   str_delete_n(NameCommandOrca);
947   delete_last_spaces(NameCommandOrca);
948   delete_first_spaces(NameCommandOrca);
949 }
950 /********************************************************************************/
modify_orca_command()951 void  modify_orca_command()
952 {
953   G_CONST_RETURN gchar *strcom;
954   GList *glist = NULL;
955   gint i;
956 
957   strcom = gtk_entry_get_text (GTK_ENTRY (EntryOrca));
958   if(strcmp(strcom,""))
959       NameCommandOrca = g_strdup(strcom);
960 
961   str_delete_n(NameCommandOrca);
962   delete_last_spaces(NameCommandOrca);
963   delete_first_spaces(NameCommandOrca);
964 
965   for(i=0;i<orcaCommands.numberOfCommands;i++)
966   {
967 	  if(strcmp(NameCommandOrca,orcaCommands.commands[i])==0)
968 		  return;
969   }
970   orcaCommands.numberOfCommands++;
971   orcaCommands.commands = g_realloc(
972 		   orcaCommands.commands,
973 		   orcaCommands.numberOfCommands*sizeof(gchar*));
974   orcaCommands.commands[orcaCommands.numberOfCommands-1] = g_strdup(NameCommandOrca);
975 
976   for(i=orcaCommands.numberOfCommands-1;i>=0;i--)
977 	glist = g_list_append(glist,orcaCommands.commands[i]);
978 
979   gtk_combo_box_entry_set_popdown_strings( ComboOrca, glist) ;
980 
981   g_list_free(glist);
982   if(orcaCommands.numberOfCommands<2)
983   	gtk_widget_set_sensitive(ButtonOrca, FALSE);
984   else
985   	gtk_widget_set_sensitive(ButtonOrca, TRUE);
986 }
987 /********************************************************************************/
remove_nwchem_command()988 static void  remove_nwchem_command()
989 {
990   G_CONST_RETURN gchar *strcom;
991   GList *glist = NULL;
992   gint i;
993   gint inList = -1;
994 
995   if(nwchemCommands.numberOfCommands<2)
996 	  return;
997 
998   strcom = gtk_entry_get_text (GTK_ENTRY (EntryNWChem));
999 
1000   for(i=0;i<nwchemCommands.numberOfCommands;i++)
1001   {
1002 	  if(strcmp(strcom,nwchemCommands.commands[i])==0)
1003 	  {
1004 		  inList = i;
1005 		  break;
1006 	  }
1007   }
1008   if(inList == -1)
1009 	  return;
1010   for(i=inList;i<nwchemCommands.numberOfCommands-1;i++)
1011 	  nwchemCommands.commands[i] = nwchemCommands.commands[i+1];
1012 
1013   nwchemCommands.numberOfCommands--;
1014   nwchemCommands.commands = g_realloc(
1015 		   nwchemCommands.commands,
1016 		   nwchemCommands.numberOfCommands*sizeof(gchar*));
1017 
1018   for(i=0;i<nwchemCommands.numberOfCommands;i++)
1019 	glist = g_list_append(glist,nwchemCommands.commands[i]);
1020 
1021   gtk_combo_box_entry_set_popdown_strings( ComboNWChem, glist) ;
1022 
1023   g_list_free(glist);
1024 
1025   if(nwchemCommands.numberOfCommands<2)
1026   	gtk_widget_set_sensitive(ButtonNWChem, FALSE);
1027   else
1028   	gtk_widget_set_sensitive(ButtonNWChem, TRUE);
1029 
1030   NameCommandNWChem = g_strdup(nwchemCommands.commands[0]);
1031 
1032   str_delete_n(NameCommandNWChem);
1033   delete_last_spaces(NameCommandNWChem);
1034   delete_first_spaces(NameCommandNWChem);
1035 }
1036 /********************************************************************************/
modify_nwchem_command()1037 void  modify_nwchem_command()
1038 {
1039   G_CONST_RETURN gchar *strcom;
1040   GList *glist = NULL;
1041   gint i;
1042 
1043   strcom = gtk_entry_get_text (GTK_ENTRY (EntryNWChem));
1044   if(strcmp(strcom,""))
1045       NameCommandNWChem = g_strdup(strcom);
1046 
1047   str_delete_n(NameCommandNWChem);
1048   delete_last_spaces(NameCommandNWChem);
1049   delete_first_spaces(NameCommandNWChem);
1050 
1051   for(i=0;i<nwchemCommands.numberOfCommands;i++)
1052   {
1053 	  if(strcmp(NameCommandNWChem,nwchemCommands.commands[i])==0)
1054 		  return;
1055   }
1056   nwchemCommands.numberOfCommands++;
1057   nwchemCommands.commands = g_realloc(
1058 		   nwchemCommands.commands,
1059 		   nwchemCommands.numberOfCommands*sizeof(gchar*));
1060   nwchemCommands.commands[nwchemCommands.numberOfCommands-1] = g_strdup(NameCommandNWChem);
1061 
1062   for(i=nwchemCommands.numberOfCommands-1;i>=0;i--)
1063 	glist = g_list_append(glist,nwchemCommands.commands[i]);
1064 
1065   gtk_combo_box_entry_set_popdown_strings( ComboNWChem, glist) ;
1066 
1067   g_list_free(glist);
1068   if(nwchemCommands.numberOfCommands<2)
1069   	gtk_widget_set_sensitive(ButtonNWChem, FALSE);
1070   else
1071   	gtk_widget_set_sensitive(ButtonNWChem, TRUE);
1072 }
1073 /********************************************************************************/
remove_psicode_command()1074 static void  remove_psicode_command()
1075 {
1076   G_CONST_RETURN gchar *strcom;
1077   GList *glist = NULL;
1078   gint i;
1079   gint inList = -1;
1080 
1081   if(psicodeCommands.numberOfCommands<2)
1082 	  return;
1083 
1084   strcom = gtk_entry_get_text (GTK_ENTRY (EntryPsicode));
1085 
1086   for(i=0;i<psicodeCommands.numberOfCommands;i++)
1087   {
1088 	  if(strcmp(strcom,psicodeCommands.commands[i])==0)
1089 	  {
1090 		  inList = i;
1091 		  break;
1092 	  }
1093   }
1094   if(inList == -1)
1095 	  return;
1096   for(i=inList;i<psicodeCommands.numberOfCommands-1;i++)
1097 	  psicodeCommands.commands[i] = psicodeCommands.commands[i+1];
1098 
1099   psicodeCommands.numberOfCommands--;
1100   psicodeCommands.commands = g_realloc(
1101 		   psicodeCommands.commands,
1102 		   psicodeCommands.numberOfCommands*sizeof(gchar*));
1103 
1104   for(i=0;i<psicodeCommands.numberOfCommands;i++)
1105 	glist = g_list_append(glist,psicodeCommands.commands[i]);
1106 
1107   gtk_combo_box_entry_set_popdown_strings( ComboPsicode, glist) ;
1108 
1109   g_list_free(glist);
1110 
1111   if(psicodeCommands.numberOfCommands<2)
1112   	gtk_widget_set_sensitive(ButtonPsicode, FALSE);
1113   else
1114   	gtk_widget_set_sensitive(ButtonPsicode, TRUE);
1115 
1116   NameCommandPsicode = g_strdup(psicodeCommands.commands[0]);
1117 
1118   str_delete_n(NameCommandPsicode);
1119   delete_last_spaces(NameCommandPsicode);
1120   delete_first_spaces(NameCommandPsicode);
1121 }
1122 /********************************************************************************/
modify_psicode_command()1123 void  modify_psicode_command()
1124 {
1125   G_CONST_RETURN gchar *strcom;
1126   GList *glist = NULL;
1127   gint i;
1128 
1129   strcom = gtk_entry_get_text (GTK_ENTRY (EntryPsicode));
1130   if(strcmp(strcom,""))
1131       NameCommandPsicode = g_strdup(strcom);
1132 
1133   str_delete_n(NameCommandPsicode);
1134   delete_last_spaces(NameCommandPsicode);
1135   delete_first_spaces(NameCommandPsicode);
1136 
1137   for(i=0;i<psicodeCommands.numberOfCommands;i++)
1138   {
1139 	  if(strcmp(NameCommandPsicode,psicodeCommands.commands[i])==0)
1140 		  return;
1141   }
1142   psicodeCommands.numberOfCommands++;
1143   psicodeCommands.commands = g_realloc(
1144 		   psicodeCommands.commands,
1145 		   psicodeCommands.numberOfCommands*sizeof(gchar*));
1146   psicodeCommands.commands[psicodeCommands.numberOfCommands-1] = g_strdup(NameCommandPsicode);
1147 
1148   for(i=psicodeCommands.numberOfCommands-1;i>=0;i--)
1149 	glist = g_list_append(glist,psicodeCommands.commands[i]);
1150 
1151   gtk_combo_box_entry_set_popdown_strings( ComboPsicode, glist) ;
1152 
1153   g_list_free(glist);
1154   if(psicodeCommands.numberOfCommands<2)
1155   	gtk_widget_set_sensitive(ButtonPsicode, FALSE);
1156   else
1157   	gtk_widget_set_sensitive(ButtonPsicode, TRUE);
1158 }
1159 /********************************************************************************/
remove_povray_command()1160 static void  remove_povray_command()
1161 {
1162   G_CONST_RETURN gchar *strcom;
1163   GList *glist = NULL;
1164   gint i;
1165   gint inList = -1;
1166 
1167   if(povrayCommands.numberOfCommands<2)
1168 	  return;
1169 
1170   strcom = gtk_entry_get_text (GTK_ENTRY (EntryPovray));
1171 
1172   for(i=0;i<povrayCommands.numberOfCommands;i++)
1173   {
1174 	  if(strcmp(strcom,povrayCommands.commands[i])==0)
1175 	  {
1176 		  inList = i;
1177 		  break;
1178 	  }
1179   }
1180   if(inList == -1)
1181 	  return;
1182   for(i=inList;i<povrayCommands.numberOfCommands-1;i++)
1183 	  povrayCommands.commands[i] = povrayCommands.commands[i+1];
1184 
1185   povrayCommands.numberOfCommands--;
1186   povrayCommands.commands = g_realloc(
1187 		   povrayCommands.commands,
1188 		   povrayCommands.numberOfCommands*sizeof(gchar*));
1189 
1190   for(i=0;i<povrayCommands.numberOfCommands;i++)
1191 	glist = g_list_append(glist,povrayCommands.commands[i]);
1192 
1193   gtk_combo_box_entry_set_popdown_strings( ComboPovray, glist) ;
1194 
1195   g_list_free(glist);
1196 
1197   if(povrayCommands.numberOfCommands<2)
1198   	gtk_widget_set_sensitive(ButtonPovray, FALSE);
1199   else
1200   	gtk_widget_set_sensitive(ButtonPovray, TRUE);
1201 
1202   NameCommandPovray = g_strdup(povrayCommands.commands[0]);
1203 
1204   str_delete_n(NameCommandPovray);
1205   delete_last_spaces(NameCommandPovray);
1206   delete_first_spaces(NameCommandPovray);
1207 }
1208 /********************************************************************************/
modify_povray_command()1209 void  modify_povray_command()
1210 {
1211   G_CONST_RETURN gchar *strcom;
1212   GList *glist = NULL;
1213   gint i;
1214 
1215   strcom = gtk_entry_get_text (GTK_ENTRY (EntryPovray));
1216   if(strcmp(strcom,""))
1217       NameCommandPovray = g_strdup(strcom);
1218 
1219   str_delete_n(NameCommandPovray);
1220   delete_last_spaces(NameCommandPovray);
1221   delete_first_spaces(NameCommandPovray);
1222 
1223   for(i=0;i<povrayCommands.numberOfCommands;i++)
1224   {
1225 	  if(strcmp(NameCommandPovray,povrayCommands.commands[i])==0)
1226 		  return;
1227   }
1228   povrayCommands.numberOfCommands++;
1229   povrayCommands.commands = g_realloc(
1230 		   povrayCommands.commands,
1231 		   povrayCommands.numberOfCommands*sizeof(gchar*));
1232   povrayCommands.commands[povrayCommands.numberOfCommands-1] = g_strdup(NameCommandPovray);
1233 
1234   for(i=povrayCommands.numberOfCommands-1;i>=0;i--)
1235 	glist = g_list_append(glist,povrayCommands.commands[i]);
1236 
1237   gtk_combo_box_entry_set_popdown_strings( ComboPovray, glist) ;
1238 
1239   g_list_free(glist);
1240   if(povrayCommands.numberOfCommands<2)
1241   	gtk_widget_set_sensitive(ButtonPovray, FALSE);
1242   else
1243   	gtk_widget_set_sensitive(ButtonPovray, TRUE);
1244 }
1245 /********************************************************************************/
apply_all()1246 void apply_all()
1247 {
1248   modify_gaussian_command();
1249   modify_molpro_command();
1250   modify_demon_command();
1251   modify_color_surfaces();
1252 }
1253 /********************************************************************************/
set_temp_font(GtkFontSelectionDialog * Sel,gpointer * d)1254 void set_temp_font(GtkFontSelectionDialog *Sel,gpointer *d)
1255 {
1256         FontTemp =  gtk_font_selection_dialog_get_font_name(Sel);
1257 }
1258 /********************************************************************************/
set_font_other(gchar * fontname)1259 void set_font_other (gchar *fontname)
1260 {
1261         GtkStyle *style;
1262 	PangoFontDescription *font_desc = NULL;
1263 
1264         style = gtk_widget_get_default_style ();
1265   	font_desc = pango_font_description_from_string (fontname);
1266 
1267 	if (font_desc)
1268         {
1269     		style->font_desc = font_desc;
1270 		/*
1271 		gtk_widget_set_default_style(style);
1272 		*/
1273         }
1274 	else
1275 	{
1276 		gchar* temp= NULL;
1277                 temp = g_strdup_printf(N_("Unknown font,\n%s\nPlease select a other\n"),fontname);
1278 		Message(temp,"ERROR",TRUE);
1279 		g_free(temp);
1280 	}
1281 
1282 }
1283 /********************************************************************************/
set_button_font(GtkWidget * button,gpointer * data)1284 static void set_button_font(GtkWidget *button,gpointer *data)
1285 {
1286   GtkWidget *hbox;
1287   GtkWidget *label;
1288   gchar *Type = g_object_get_data(G_OBJECT (button), "Type");
1289 
1290   gtk_widget_hide (GTK_WIDGET(button));
1291   hbox = g_object_get_data(G_OBJECT (button), "Hbox");
1292   gtk_widget_destroy(GTK_WIDGET(hbox));
1293 
1294   hbox = gtk_hbox_new (TRUE, 0);
1295   label = gtk_label_new(FontTemp);
1296   gtk_container_add(GTK_CONTAINER(hbox),label);
1297 
1298   gtk_container_add(GTK_CONTAINER(button),hbox);
1299   g_object_set_data(G_OBJECT (button), "Hbox", hbox);
1300   gtk_widget_show_all (GTK_WIDGET(button));
1301 
1302   if(strstr(Type,"Data"))
1303   {
1304 	set_font (text, FontTemp);
1305         if( FontsStyleData.fontname )
1306             g_free(FontsStyleData.fontname);
1307         FontsStyleData.fontname = g_strdup(FontTemp);
1308   }
1309   else
1310   if(strstr(Type,"Result"))
1311   {
1312 	set_font (textresult, FontTemp);
1313 	set_font (TextOutput, FontTemp);
1314 	set_font (TextError, FontTemp);
1315        	if( FontsStyleResult.fontname )
1316        		g_free(FontsStyleResult.fontname);
1317        	FontsStyleResult.fontname = g_strdup(FontTemp);
1318   }
1319   else
1320   if(strstr(Type,"Label"))
1321   {
1322        	if( FontsStyleLabel.fontname )
1323        		g_free(FontsStyleLabel.fontname);
1324        	FontsStyleLabel.fontname = g_strdup(FontTemp);
1325  	if(GeomDrawingArea)
1326   		rafresh_drawing();
1327   }
1328   else
1329   {
1330 	set_font_other (FontTemp);
1331        	if( FontsStyleOther.fontname )
1332        		g_free(FontsStyleOther.fontname);
1333        	FontsStyleOther.fontname = g_strdup(FontTemp);
1334   }
1335 
1336 }
1337 /********************************************************************************/
open_font_dlg(GtkWidget * button,gpointer tdata)1338 static void open_font_dlg(GtkWidget *button,gpointer tdata)
1339 {
1340 
1341 	GtkFontSelectionDialog *FontDlg;
1342 	FontDlg = (GtkFontSelectionDialog *)gtk_font_selection_dialog_new(_("Font selection"));
1343         gtk_window_set_position(GTK_WINDOW(FontDlg),GTK_WIN_POS_CENTER);
1344 
1345 	if(!instal)
1346 	{
1347 		add_child(Wins, GTK_WIDGET(FontDlg), gtk_widget_destroy, _(" Font selction "));
1348 		g_signal_connect(G_OBJECT(FontDlg),"delete_event",(GCallback)delete_child,NULL);
1349 	}
1350 	else
1351 	{
1352 		gtk_window_set_modal (GTK_WINDOW (FontDlg), TRUE);
1353 		gtk_window_set_transient_for(GTK_WINDOW(FontDlg),GTK_WINDOW(Wins));
1354 	}
1355 
1356   	gtk_font_selection_dialog_set_font_name    ((GtkFontSelectionDialog *)FontDlg,(gchar*)tdata);
1357 
1358 /*  	gtk_widget_hide(FontDlg->help_button);*/
1359 	g_signal_connect_swapped(GTK_OBJECT(FontDlg->ok_button),"clicked", (GCallback)set_temp_font,GTK_OBJECT(FontDlg));
1360 
1361 	g_signal_connect_swapped(GTK_OBJECT(FontDlg->ok_button),"clicked", (GCallback)set_button_font,GTK_OBJECT(button));
1362 
1363 	if(!instal)
1364 	{
1365  		g_signal_connect_swapped(GTK_OBJECT(FontDlg->ok_button),"clicked",G_CALLBACK(delete_child),GTK_OBJECT(FontDlg));
1366  		g_signal_connect_swapped(GTK_OBJECT(FontDlg->cancel_button),"clicked",G_CALLBACK(delete_child),GTK_OBJECT(FontDlg));
1367 	}
1368 	else
1369 	{
1370  		g_signal_connect_swapped(GTK_OBJECT(FontDlg->ok_button),"clicked",G_CALLBACK(gtk_widget_destroy),GTK_OBJECT(FontDlg));
1371  		g_signal_connect_swapped(GTK_OBJECT(FontDlg->cancel_button),"clicked",G_CALLBACK(gtk_widget_destroy),GTK_OBJECT(FontDlg));
1372 	}
1373 	gtk_widget_show(GTK_WIDGET(FontDlg));
1374 
1375 }
1376 /********************************************************************************/
set_temp_color(GtkColorSelection * Sel,gpointer * d)1377 void set_temp_color(GtkColorSelection *Sel,gpointer *d)
1378 {
1379 	gtk_color_selection_get_current_color(Sel, &ColorTemp);
1380 }
1381 /********************************************************************************/
set_button_color(GtkObject * b,gpointer * data)1382 static void set_button_color(GtkObject *b,gpointer *data)
1383 {
1384   GtkWidget *hbox;
1385   GtkWidget *button = GTK_WIDGET(b);
1386   gchar *Type = g_object_get_data(G_OBJECT (button), "Type");
1387 
1388   gtk_widget_hide (GTK_WIDGET(button));
1389   hbox = g_object_get_data(G_OBJECT (button), "Hbox");
1390   gtk_widget_destroy(GTK_WIDGET(hbox));
1391 
1392   hbox = create_hbox_pixmap_color(Wins,ColorTemp.red,ColorTemp.green,ColorTemp.blue);
1393 
1394   gtk_container_add(GTK_CONTAINER(button),hbox);
1395   g_object_set_data(G_OBJECT (button), "Hbox", hbox);
1396   gtk_widget_show (hbox);
1397   gtk_widget_show_all (GTK_WIDGET(button));
1398   if(strstr(Type,"Data _Back"))
1399   {
1400   	set_base_style(text,ColorTemp.red,ColorTemp.green,ColorTemp.blue);
1401         FontsStyleData.BaseColor  = ColorTemp;
1402   }
1403   else if(strstr(Type,"Data _Fore"))
1404   {
1405   	set_text_style(text,ColorTemp.red,ColorTemp.green,ColorTemp.blue);
1406         FontsStyleData.TextColor  = ColorTemp;
1407   }
1408   if(strstr(Type,"Result _Back"))
1409   {
1410   	set_base_style(textresult,ColorTemp.red,ColorTemp.green,ColorTemp.blue);
1411   	set_base_style(TextOutput,ColorTemp.red,ColorTemp.green,ColorTemp.blue);
1412   	set_base_style(TextError,ColorTemp.red,ColorTemp.green,ColorTemp.blue);
1413         FontsStyleResult.BaseColor  = ColorTemp;
1414   }
1415   else if(strstr(Type,"Result _Fore"))
1416   {
1417   	set_text_style(textresult,ColorTemp.red,ColorTemp.green,ColorTemp.blue);
1418   	set_text_style(TextOutput,ColorTemp.red,ColorTemp.green,ColorTemp.blue);
1419   	set_text_style(TextError,ColorTemp.red,ColorTemp.green,ColorTemp.blue);
1420         FontsStyleResult.TextColor  = ColorTemp;
1421   }
1422   else if(strstr(Type,"Label_Fore"))
1423   {
1424         FontsStyleLabel.TextColor  = ColorTemp;
1425  	if(GeomDrawingArea)
1426   		rafresh_drawing();
1427   }
1428 }
1429 /********************************************************************************/
open_color_dlg(GtkWidget * button,gpointer tcolor)1430 static void open_color_dlg(GtkWidget *button,gpointer tcolor)
1431 {
1432 
1433 	GtkColorSelectionDialog *ColorDlg;
1434 	ColorDlg = (GtkColorSelectionDialog *)gtk_color_selection_dialog_new(_("Set Atom Color"));
1435 	if(tcolor)
1436 	{
1437 		GdkColor* color = (GdkColor*)tcolor;
1438 		gtk_color_selection_set_current_color (GTK_COLOR_SELECTION (ColorDlg->colorsel), color);
1439 	}
1440         gtk_window_set_position(GTK_WINDOW(ColorDlg),GTK_WIN_POS_CENTER);
1441 
1442 	if(!instal)
1443 	{
1444 		add_child(Wins,GTK_WIDGET(ColorDlg),gtk_widget_destroy,_(" Set Color "));
1445 		g_signal_connect(G_OBJECT(ColorDlg),"delete_event",(GCallback)delete_child,NULL);
1446 	}
1447 	else
1448 	{
1449 		gtk_window_set_modal (GTK_WINDOW (ColorDlg), TRUE);
1450 		gtk_window_set_transient_for(GTK_WINDOW(ColorDlg),GTK_WINDOW(Wins));
1451 	}
1452 
1453   	gtk_widget_hide(ColorDlg->help_button);
1454 
1455 	g_signal_connect_swapped(GTK_OBJECT(ColorDlg->ok_button),"clicked",
1456 		(GCallback)set_temp_color,GTK_OBJECT(ColorDlg->colorsel));
1457 
1458 	g_signal_connect_swapped(GTK_OBJECT(ColorDlg->ok_button),"clicked",
1459 		(GCallback)set_button_color,GTK_OBJECT(button));
1460 
1461 	if(!instal)
1462 	{
1463  		g_signal_connect_swapped(GTK_OBJECT(ColorDlg->ok_button),"clicked",G_CALLBACK(delete_child),GTK_OBJECT(ColorDlg));
1464  		g_signal_connect_swapped(GTK_OBJECT(ColorDlg->cancel_button),"clicked",G_CALLBACK(delete_child),GTK_OBJECT(ColorDlg));
1465 	}
1466 	else
1467 	{
1468  		g_signal_connect_swapped(GTK_OBJECT(ColorDlg->ok_button),"clicked",G_CALLBACK(gtk_widget_destroy),GTK_OBJECT(ColorDlg));
1469  		g_signal_connect_swapped(GTK_OBJECT(ColorDlg->cancel_button),"clicked",G_CALLBACK(gtk_widget_destroy),GTK_OBJECT(ColorDlg));
1470 	}
1471 
1472 	gtk_widget_show(GTK_WIDGET(ColorDlg));
1473 
1474 }
1475 /********************************************************************************/
add_button_color(GtkWidget * hbox,gushort red,gushort green,gushort blue)1476 GtkWidget*  add_button_color(GtkWidget *hbox,gushort red,gushort green,gushort blue)
1477 {
1478   GtkWidget *button;
1479   GdkColor* color = g_malloc(sizeof(GdkColor));
1480 
1481   color->red = red;
1482   color->green = green;
1483   color->blue = blue;
1484 
1485   button = create_button_pixmap_color(Wins,red,green,blue);
1486   g_object_set_data_full (G_OBJECT (button), "InitialCOlor", color,g_free);
1487   g_signal_connect(G_OBJECT(button), "clicked",(GCallback)open_color_dlg,color);
1488 
1489   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 1);
1490 
1491   return button;
1492 }
1493 /********************************************************************************/
add_label_color(GtkWidget * hbox,gchar * tlabel)1494 GtkWidget*  add_label_color(GtkWidget *hbox,gchar *tlabel)
1495 {
1496   GtkWidget *label;
1497 
1498   label = gtk_label_new (tlabel);
1499   gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 1);
1500 
1501   return label;
1502 }
1503 /********************************************************************************/
add_frame_label(GtkWidget * hboxall)1504 void add_frame_label(GtkWidget *hboxall)
1505 {
1506   GtkWidget *vbox;
1507   GtkWidget *frame;
1508   GtkWidget *button;
1509   GtkWidget *label;
1510   GtkWidget *hboxbutton;
1511   gchar *type;
1512   gchar *tfont;
1513   gchar *tlabel = g_strdup("Label");
1514   GtkWidget *table = gtk_table_new(2,3,FALSE);
1515 
1516 
1517   frame = create_frame(Wins,hboxall,tlabel);
1518   vbox = create_vbox(frame);
1519   gtk_container_add(GTK_CONTAINER(vbox),table);
1520 
1521   add_label_table(table,_(" Default font          "),0,0);
1522   add_label_table(table," : ",0,1);
1523 
1524   hboxbutton = gtk_hbox_new (TRUE, 0);
1525   gtk_widget_set_size_request(GTK_WIDGET(hboxbutton), -1,  (gint)(ScreenHeight/50));
1526 
1527   tfont = g_strdup(FontsStyleLabel.fontname);
1528   label = gtk_label_new(tfont);
1529   button = gtk_button_new();
1530   gtk_container_add(GTK_CONTAINER(hboxbutton),label);
1531   gtk_container_add(GTK_CONTAINER(button),hboxbutton);
1532   g_object_set_data(G_OBJECT (button), "Hbox", hboxbutton);
1533 
1534   add_widget_table(table,button,0,2);
1535   g_signal_connect(G_OBJECT(button), "clicked",(GCallback)open_font_dlg,(gpointer)tfont);
1536   type = g_strdup_printf("%s",tlabel);
1537   g_object_set_data(G_OBJECT (button), "Type", type);
1538 
1539   add_label_table(table,_(" Foreground color "),1,0);
1540   add_label_table(table," : ",1,1);
1541 
1542   hboxbutton = gtk_hbox_new (FALSE, 0);
1543   button = add_button_color(hboxbutton,
1544   FontsStyleLabel.TextColor.red,FontsStyleLabel.TextColor.green,FontsStyleLabel.TextColor.blue);
1545 
1546   add_widget_table(table,hboxbutton,1,2);
1547   type = g_strdup_printf("%s_Fore",tlabel);
1548   g_object_set_data(G_OBJECT (button), "Type", type);
1549 
1550 }
1551 /********************************************************************************/
add_frame_data_result(GtkWidget * hboxall,gchar * tlabel)1552 void add_frame_data_result(GtkWidget *hboxall,gchar *tlabel)
1553 {
1554   GtkWidget *hboxbutton;
1555   GtkWidget *vbox;
1556   GtkWidget *frame;
1557   GtkWidget *button;
1558   GtkWidget *label;
1559   gchar *type;
1560   gchar *tfont;
1561   GtkWidget *table = gtk_table_new(3,3,FALSE);
1562 
1563 
1564 
1565   frame = create_frame(Wins,hboxall,tlabel);
1566   vbox = create_vbox(frame);
1567   gtk_container_add(GTK_CONTAINER(vbox),table);
1568 
1569   add_label_table(table," Default font ",0,0);
1570   add_label_table(table," : ",0,1);
1571   hboxbutton = gtk_hbox_new (TRUE, 0);
1572   gtk_widget_set_size_request(GTK_WIDGET(hboxbutton), -1,  (gint)(ScreenHeight/50));
1573   if(strstr(tlabel,"Data"))
1574         tfont = g_strdup(FontsStyleData.fontname);
1575   else
1576         tfont = g_strdup(FontsStyleResult.fontname);
1577 
1578   label = gtk_label_new(tfont);
1579   button = gtk_button_new();
1580   gtk_container_add(GTK_CONTAINER(hboxbutton),label);
1581   gtk_container_add(GTK_CONTAINER(button),hboxbutton);
1582   g_object_set_data(G_OBJECT (button), "Hbox", hboxbutton);
1583   add_widget_table(table,button,0,2);
1584   g_signal_connect(G_OBJECT(button), "clicked",(GCallback)open_font_dlg,(gpointer)tfont);
1585   type = g_strdup_printf("%s",tlabel);
1586   g_object_set_data(G_OBJECT (button), "Type", type);
1587 
1588 
1589   add_label_table(table,_(" Background color "),1,0);
1590   add_label_table(table," : ",1,1);
1591   if(strstr(tlabel,"Data"))
1592   {
1593   	hboxbutton = gtk_hbox_new (FALSE, 0);
1594   	button = add_button_color(hboxbutton,
1595 	FontsStyleData.BaseColor.red,FontsStyleData.BaseColor.green,FontsStyleData.BaseColor.blue);
1596   }
1597   else
1598   {
1599   	hboxbutton = gtk_hbox_new (FALSE, 0);
1600   	button = add_button_color(hboxbutton,
1601 	FontsStyleResult.BaseColor.red,FontsStyleResult.BaseColor.green,FontsStyleResult.BaseColor.blue);
1602   }
1603   add_widget_table(table,hboxbutton,1,2);
1604   type = g_strdup_printf("%s_Back",tlabel);
1605   g_object_set_data(G_OBJECT (button), "Type", type);
1606 
1607   add_label_table(table,_(" Foreground color "),2,0);
1608   add_label_table(table," : ",2,1);
1609 
1610   if(strstr(tlabel,"Data"))
1611   {
1612   	hboxbutton = gtk_hbox_new (FALSE, 0);
1613   	button = add_button_color(hboxbutton,
1614 	FontsStyleData.TextColor.red,FontsStyleData.TextColor.green,FontsStyleData.TextColor.blue);
1615   }
1616   else
1617   {
1618   	hboxbutton = gtk_hbox_new (FALSE, 0);
1619   	button = add_button_color(hboxbutton,
1620 	FontsStyleResult.TextColor.red,FontsStyleResult.TextColor.green,FontsStyleResult.TextColor.blue);
1621   }
1622   add_widget_table(table,hboxbutton,2,2);
1623   type = g_strdup_printf("%s_Fore",tlabel);
1624   g_object_set_data(G_OBJECT (button), "Type", type);
1625 }
1626 /********************************************************************************/
create_font_color(GtkWidget * Wins,GtkWidget * Frame)1627 void  create_font_color(GtkWidget *Wins,GtkWidget *Frame)
1628 {
1629   GtkWidget *vbox;
1630   GtkWidget *hbox;
1631   GtkWidget *hboxall;
1632 
1633   gtk_widget_realize(Wins);
1634   vbox = create_vbox(Frame);
1635   hbox = gtk_hbox_new (FALSE, 0);
1636   gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 1);
1637 
1638   hboxall = gtk_hbox_new (FALSE, 0);
1639   gtk_box_pack_start (GTK_BOX (hbox), hboxall, FALSE, FALSE, 1);
1640   add_frame_data_result(hboxall,_(" Data "));
1641 
1642   hboxall = gtk_hbox_new (FALSE, 0);
1643   gtk_box_pack_start (GTK_BOX (hbox), hboxall, FALSE, FALSE, 1);
1644   add_frame_data_result(hboxall,_(" Result "));
1645 
1646   hboxall = gtk_hbox_new (FALSE, 0);
1647   gtk_box_pack_start (GTK_BOX (hbox), hboxall, FALSE, FALSE, 1);
1648   add_frame_label(hboxall);
1649 
1650   /* add_frame_other(hboxall);*/
1651 
1652 }
1653 /********************************************************************************/
create_font_color_in_box(GtkWidget * Win,GtkWidget * Box)1654 void  create_font_color_in_box(GtkWidget *Win,GtkWidget *Box)
1655 {
1656   GtkWidget *vbox;
1657   GtkWidget *hbox;
1658   GtkWidget *Frame;
1659   GtkWidget *hboxall;
1660 
1661   Frame= gtk_frame_new(NULL);
1662   gtk_container_set_border_width(GTK_CONTAINER(Frame), 10);
1663   gtk_container_add(GTK_CONTAINER(Box),Frame);
1664 
1665   Wins = Win;
1666   instal = TRUE;
1667   gtk_widget_realize(Wins);
1668   vbox = create_vbox(Frame);
1669   hbox = gtk_hbox_new (FALSE, 0);
1670   gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 1);
1671 
1672   hboxall = gtk_hbox_new (FALSE, 0);
1673   gtk_box_pack_start (GTK_BOX (hbox), hboxall, FALSE, FALSE, 1);
1674   add_frame_data_result(hboxall,_(" Data "));
1675 
1676   hboxall = gtk_hbox_new (FALSE, 0);
1677   gtk_box_pack_start (GTK_BOX (hbox), hboxall, FALSE, FALSE, 1);
1678   add_frame_data_result(hboxall,_(" Result "));
1679 
1680   hboxall = gtk_hbox_new (FALSE, 0);
1681   gtk_box_pack_start (GTK_BOX (hbox), hboxall, FALSE, FALSE, 1);
1682   add_frame_label(hboxall);
1683 
1684   hboxall = gtk_hbox_new (FALSE, 0);
1685   gtk_box_pack_start (GTK_BOX (hbox), hboxall, FALSE, FALSE, 1);
1686   /* add_frame_other(hboxall);*/
1687 
1688   gtk_widget_show_all(Frame);
1689 
1690 }
1691 /********************************************************************************/
modify_batch_command(GtkWidget * Entry,gpointer data)1692 static void  modify_batch_command(GtkWidget *Entry,gpointer data)
1693 {
1694 	GtkWidget* entryType   = GTK_WIDGET(data);
1695   	G_CONST_RETURN gchar*     textType  =  gtk_entry_get_text (GTK_ENTRY (entryType));
1696   	G_CONST_RETURN gchar*     textEntry  =  gtk_entry_get_text (GTK_ENTRY (Entry));
1697   	GtkWidget* entryAll   = g_object_get_data(G_OBJECT (entryType), "EntryAll");
1698   	GtkWidget* entryUser  = g_object_get_data(G_OBJECT (entryType), "EntryUser");
1699   	GtkWidget* entryKill  = g_object_get_data(G_OBJECT (entryType), "EntryKill");
1700   	GtkWidget* entryJobId = g_object_get_data(G_OBJECT (entryType), "EntryJobId");
1701 	gchar* temp = g_strdup(textEntry);
1702 
1703 
1704   	gint n=-1;
1705   	gint i;
1706 
1707 	if(!temp) return;
1708 	if(strlen(temp)<1) return;
1709 
1710   	for(i=0;i<batchCommands.numberOfTypes;i++)
1711 		if(strcmp(textType,batchCommands.types[i])==0)
1712 	  	{
1713 			n = i;
1714 		  	break;
1715 	  	}
1716 	if(n<0) return;
1717 
1718 	if(NameTypeBatch) g_free(NameTypeBatch);
1719 	NameTypeBatch = g_strdup(batchCommands.types[n]);
1720 
1721 	if(Entry==entryAll)
1722 	{
1723 		if(batchCommands.commandListAll[n]) g_free(batchCommands.commandListAll[n]);
1724 		batchCommands.commandListAll[n] = g_strdup(temp);
1725 		if(NameCommandBatchAll) g_free(NameCommandBatchAll);
1726 		NameCommandBatchAll = g_strdup(temp);
1727 	}
1728 	else
1729 	if(Entry==entryUser)
1730 	{
1731 		if(batchCommands.commandListUser[n]) g_free(batchCommands.commandListUser[n]);
1732 		batchCommands.commandListUser[n] = g_strdup(temp);
1733 		if(NameCommandBatchUser) g_free(NameCommandBatchUser);
1734 		NameCommandBatchUser = g_strdup(temp);
1735 	}
1736 	else
1737 	if(Entry==entryKill)
1738 	{
1739 		if(batchCommands.commandKill[n]) g_free(batchCommands.commandKill[n]);
1740 		batchCommands.commandKill[n] = g_strdup(temp);
1741 		if(NameCommandBatchKill) g_free(NameCommandBatchKill);
1742 		NameCommandBatchKill = g_strdup(temp);
1743 	}
1744 	else
1745 	if(Entry==entryJobId)
1746 	{
1747 		if(batchCommands.jobIdTitle[n]) g_free(batchCommands.jobIdTitle[n]);
1748 		batchCommands.jobIdTitle[n] = g_strdup(temp);
1749 		if(NamejobIdTitleBatch) g_free(NamejobIdTitleBatch);
1750 		NamejobIdTitleBatch = g_strdup(temp);
1751 	}
1752 	g_free(temp);
1753 
1754 
1755 }
1756 /********************************************************************************/
modify_batch_entrys(GtkWidget * Entry,gpointer data)1757 static void  modify_batch_entrys(GtkWidget *Entry,gpointer data)
1758 {
1759   GtkWidget* entryAll   = g_object_get_data(G_OBJECT (Entry), "EntryAll");
1760   GtkWidget* entryUser  = g_object_get_data(G_OBJECT (Entry), "EntryUser");
1761   GtkWidget* entryKill  = g_object_get_data(G_OBJECT (Entry), "EntryKill");
1762   GtkWidget* entryJobId = g_object_get_data(G_OBJECT (Entry), "EntryJobId");
1763   G_CONST_RETURN gchar*     textType  =  gtk_entry_get_text (GTK_ENTRY (Entry));
1764   gint n=-1;
1765   gint i;
1766   for(i=0;i<batchCommands.numberOfTypes;i++)
1767 	  if(strcmp(textType,batchCommands.types[i])==0)
1768 	  {
1769 		  n = i;
1770 		  break;
1771 	  }
1772   if(n<0) return;
1773   gtk_entry_set_text (GTK_ENTRY (entryAll),batchCommands.commandListAll[n]);
1774   gtk_entry_set_text (GTK_ENTRY (entryUser),batchCommands.commandListUser[n]);
1775   gtk_entry_set_text (GTK_ENTRY (entryKill),batchCommands.commandKill[n]);
1776   gtk_entry_set_text (GTK_ENTRY (entryJobId),batchCommands.jobIdTitle[n]);
1777 
1778   if(n==0 || n == 1 || n == 2)
1779   {
1780   	gtk_editable_set_editable((GtkEditable*)entryAll,FALSE);
1781   	gtk_editable_set_editable((GtkEditable*)entryUser,FALSE);
1782   	gtk_editable_set_editable((GtkEditable*)entryKill,FALSE);
1783   	gtk_editable_set_editable((GtkEditable*)entryJobId,FALSE);
1784 
1785 	gtk_widget_set_sensitive(entryAll, FALSE);
1786 	gtk_widget_set_sensitive(entryUser, FALSE);
1787 	gtk_widget_set_sensitive(entryKill, FALSE);
1788 	gtk_widget_set_sensitive(entryJobId, FALSE);
1789   }
1790   else
1791   {
1792   	gtk_editable_set_editable((GtkEditable*)entryAll,TRUE);
1793   	gtk_editable_set_editable((GtkEditable*)entryUser,TRUE);
1794   	gtk_editable_set_editable((GtkEditable*)entryKill,TRUE);
1795   	gtk_editable_set_editable((GtkEditable*)entryJobId,TRUE);
1796 
1797 	gtk_widget_set_sensitive(entryAll, TRUE);
1798 	gtk_widget_set_sensitive(entryUser, TRUE);
1799 	gtk_widget_set_sensitive(entryKill, TRUE);
1800 	gtk_widget_set_sensitive(entryJobId, TRUE);
1801 
1802   }
1803 
1804 }
1805 /********************************************************************************/
create_batch_commands(GtkWidget * Wins,GtkWidget * vbox,gboolean expand)1806 void  create_batch_commands(GtkWidget *Wins,GtkWidget *vbox,gboolean expand)
1807 {
1808   GtkWidget *frame;
1809   GtkWidget *combo;
1810   GtkWidget *entry;
1811   GtkWidget *table = gtk_table_new(4,3,FALSE);
1812   gint i;
1813 
1814 
1815   frame = gtk_frame_new (_("Batch Commands"));
1816   gtk_widget_show (frame);
1817   gtk_box_pack_start (GTK_BOX (vbox), frame, expand, expand, 0);
1818   gtk_frame_set_label_align (GTK_FRAME (frame), 0.5, 0.5);
1819 
1820   vbox = gtk_vbox_new (FALSE, 0);
1821   gtk_container_add (GTK_CONTAINER (frame), vbox);
1822   gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0);
1823 
1824 
1825 /* ------------------------------------------------------------------*/
1826   i = 0;
1827   add_label_table(table,_(" Batch Type "),(gushort)i,0);
1828   add_label_table(table," : ",(gushort)i,1);
1829 
1830   combo = create_combo_box_entry(batchCommands.types,batchCommands.numberOfTypes,TRUE,-1,-1);
1831   EntryBatchType = GTK_BIN(combo)->child;
1832   add_widget_table(table,combo,(gushort)i,2);
1833   gtk_editable_set_editable((GtkEditable*)EntryBatchType,FALSE);
1834   gtk_entry_set_text (GTK_ENTRY (EntryBatchType),NameTypeBatch);
1835 /* ------------------------------------------------------------------*/
1836   i = 1;
1837   add_label_table(table,_(" Command for list of all Job "),(gushort)i,0);
1838   add_label_table(table," : ",(gushort)i,1);
1839   entry = gtk_entry_new();
1840   add_widget_table(table,entry,(gushort)i,2);
1841   gtk_entry_set_text (GTK_ENTRY (entry),NameCommandBatchAll);
1842   g_object_set_data(G_OBJECT (EntryBatchType), "EntryAll", entry);
1843   gtk_editable_set_editable((GtkEditable*)entry,FALSE);
1844   gtk_widget_set_sensitive(entry, FALSE);
1845   g_signal_connect(G_OBJECT (entry), "changed", (GCallback)modify_batch_command,EntryBatchType);
1846 /* ------------------------------------------------------------------*/
1847   i = 2;
1848   add_label_table(table,N_(" Command for list of user Job "),(gushort)i,0);
1849   add_label_table(table," : ",(gushort)i,1);
1850   entry = gtk_entry_new();
1851   add_widget_table(table,entry,(gushort)i,2);
1852   gtk_entry_set_text (GTK_ENTRY (entry),NameCommandBatchUser);
1853   g_object_set_data(G_OBJECT (EntryBatchType), "EntryUser", entry);
1854   gtk_editable_set_editable((GtkEditable*)entry,FALSE);
1855   gtk_widget_set_sensitive(entry, FALSE);
1856   g_signal_connect(G_OBJECT (entry), "changed", (GCallback)modify_batch_command,EntryBatchType);
1857 /* ------------------------------------------------------------------*/
1858   i = 3;
1859   add_label_table(table,_(" Command for kill a Job "),(gushort)i,0);
1860   add_label_table(table," : ",(gushort)i,1);
1861   entry = gtk_entry_new();
1862   add_widget_table(table,entry,(gushort)i,2);
1863   gtk_entry_set_text (GTK_ENTRY (entry),NameCommandBatchKill);
1864   g_object_set_data(G_OBJECT (EntryBatchType), "EntryKill", entry);
1865   gtk_editable_set_editable((GtkEditable*)entry,FALSE);
1866   gtk_widget_set_sensitive(entry, FALSE);
1867   g_signal_connect(G_OBJECT (entry), "changed", (GCallback)modify_batch_command,EntryBatchType);
1868 /* ------------------------------------------------------------------*/
1869   i = 4;
1870   add_label_table(table,_(" Title for Job id "),(gushort)i,0);
1871   add_label_table(table," : ",(gushort)i,1);
1872   entry = gtk_entry_new();
1873   add_widget_table(table,entry,(gushort)i,2);
1874   gtk_entry_set_text (GTK_ENTRY (entry),NamejobIdTitleBatch);
1875   g_object_set_data(G_OBJECT (EntryBatchType), "EntryJobId", entry);
1876   gtk_editable_set_editable((GtkEditable*)entry,FALSE);
1877   gtk_widget_set_sensitive(entry, FALSE);
1878   g_signal_connect(G_OBJECT (entry), "changed", (GCallback)modify_batch_command,EntryBatchType);
1879 /* ------------------------------------------------------------------*/
1880 
1881   g_signal_connect(G_OBJECT (EntryBatchType), "changed", (GCallback)modify_batch_entrys, NULL);
1882   gtk_entry_set_text (GTK_ENTRY (EntryBatchType)," ");
1883   gtk_entry_set_text (GTK_ENTRY (EntryBatchType),NameTypeBatch);
1884   gtk_widget_show_all(frame);
1885 
1886 }
1887 /********************************************************************************/
1888 /*
1889 static void changed_babel(GtkWidget* wid)
1890 {
1891   	if(babelCommand) g_free(babelCommand);
1892 	babelCommand = g_strdup(gtk_entry_get_text(GTK_ENTRY(entrybabel)));
1893 }
1894 static void set_entry_babel(GtkWidget* SelFile, gint response_id)
1895 {
1896   GtkWidget *entry = NULL;
1897   gchar *longfile = NULL;
1898    if(response_id != GTK_RESPONSE_OK) return;
1899 
1900   entry = (GtkWidget*)(g_object_get_data(G_OBJECT(SelFile),"EntryFile"));
1901   longfile = gabedit_file_chooser_get_current_file(GABEDIT_FILE_CHOOSER(SelFile));
1902   gtk_entry_set_text(GTK_ENTRY(entry),longfile);
1903 
1904   if(babelCommand) g_free(babelCommand);
1905   babelCommand = g_strdup(gtk_entry_get_text(GTK_ENTRY(entrybabel)));
1906 
1907 }
1908 static void set_entry_babel_selction(GtkWidget* entry)
1909 {
1910   GtkWidget *SelFile;
1911 
1912   SelFile = gabedit_file_chooser_new(_("File chooser"), GTK_FILE_CHOOSER_ACTION_OPEN);
1913   gtk_window_set_modal (GTK_WINDOW (SelFile), TRUE);
1914   gabedit_file_chooser_hide_hidden(GABEDIT_FILE_CHOOSER(SelFile));
1915   g_signal_connect(G_OBJECT(SelFile),"delete_event", (GCallback)gtk_widget_destroy,NULL);
1916 
1917   g_object_set_data(G_OBJECT (SelFile), "EntryFile", entry);
1918 
1919   g_signal_connect (SelFile, "response",  G_CALLBACK (set_entry_babel), GTK_OBJECT(SelFile));
1920   g_signal_connect (SelFile, "response",  G_CALLBACK (gtk_widget_destroy), GTK_OBJECT(SelFile));
1921 
1922   // g_signal_connect (SelFile, "close",  G_CALLBACK (gtk_widget_destroy), GTK_OBJECT(SelFile));
1923   gtk_widget_show(SelFile);
1924 }
1925 */
1926 /********************************************************************************/
1927 #ifdef G_OS_WIN32
set_entry_gamessdir(GtkWidget * dirSelector,gint response_id)1928 static void set_entry_gamessdir(GtkWidget* dirSelector, gint response_id)
1929 {
1930 	gchar* dirname = NULL;
1931 	GtkWidget *entry;
1932 	if(response_id != GTK_RESPONSE_OK) return;
1933 	dirname = gabedit_folder_chooser_get_current_folder(GABEDIT_FOLDER_CHOOSER(dirSelector));
1934 
1935 
1936 	entry = (GtkWidget*)(g_object_get_data(G_OBJECT(dirSelector),"EntryFile"));
1937 	gtk_entry_set_text(GTK_ENTRY(entry),dirname);
1938 
1939 	if(gamessDirectory) g_free(gamessDirectory);
1940 	gamessDirectory = g_strdup(dirname);
1941 }
1942 /********************************************************************************/
set_entry_gamessDir_selection(GtkWidget * entry)1943 static void set_entry_gamessDir_selection(GtkWidget* entry)
1944 {
1945 	GtkWidget *dirSelector;
1946 	dirSelector = selctionOfDir(set_entry_gamessdir, _("Select Gamess folder"), GABEDIT_TYPEWIN_ORB);
1947   	gtk_window_set_modal (GTK_WINDOW (dirSelector), TRUE);
1948   	g_signal_connect(G_OBJECT(dirSelector),"delete_event", (GCallback)gtk_widget_destroy,NULL);
1949 
1950 	g_object_set_data(G_OBJECT (dirSelector), "EntryFile", entry);
1951 
1952 	g_signal_connect (dirSelector, "response",  G_CALLBACK (set_entry_gamessdir), GTK_OBJECT(dirSelector));
1953 	g_signal_connect (dirSelector, "response",  G_CALLBACK (gtk_widget_destroy), GTK_OBJECT(dirSelector));
1954 
1955 	gtk_widget_show(dirSelector);
1956 }
1957 /********************************************************************************/
set_entry_demondir(GtkWidget * dirSelector,gint response_id)1958 static void set_entry_demondir(GtkWidget* dirSelector, gint response_id)
1959 {
1960 	gchar* dirname = NULL;
1961 	gchar* t = NULL;
1962 	GtkWidget *entry;
1963 	if(response_id != GTK_RESPONSE_OK) return;
1964 	dirname = gabedit_folder_chooser_get_current_folder(GABEDIT_FOLDER_CHOOSER(dirSelector));
1965 
1966 
1967 	entry = (GtkWidget*)(g_object_get_data(G_OBJECT(dirSelector),"EntryFile"));
1968 	gtk_entry_set_text(GTK_ENTRY(entry),dirname);
1969 
1970 	if(demonDirectory) g_free(demonDirectory);
1971 	demonDirectory = g_strdup(dirname);
1972 	t = g_strdup_printf("%s;%s",demonDirectory,g_getenv("PATH"));
1973 	g_setenv("PATH",t,TRUE);
1974 	g_free(t);
1975 }
1976 /********************************************************************************/
set_entry_demonDir_selection(GtkWidget * entry)1977 static void set_entry_demonDir_selection(GtkWidget* entry)
1978 {
1979 	GtkWidget *dirSelector;
1980 	dirSelector = selctionOfDir(set_entry_demondir, _("Select Demon folder"), GABEDIT_TYPEWIN_ORB);
1981   	gtk_window_set_modal (GTK_WINDOW (dirSelector), TRUE);
1982   	g_signal_connect(G_OBJECT(dirSelector),"delete_event", (GCallback)gtk_widget_destroy,NULL);
1983 
1984 	g_object_set_data(G_OBJECT (dirSelector), "EntryFile", entry);
1985 
1986 	g_signal_connect (dirSelector, "response",  G_CALLBACK (set_entry_demondir), GTK_OBJECT(dirSelector));
1987 	g_signal_connect (dirSelector, "response",  G_CALLBACK (gtk_widget_destroy), GTK_OBJECT(dirSelector));
1988 
1989 	gtk_widget_show(dirSelector);
1990 }
1991 /********************************************************************************/
set_entry_orcadir(GtkWidget * dirSelector,gint response_id)1992 static void set_entry_orcadir(GtkWidget* dirSelector, gint response_id)
1993 {
1994 	gchar* dirname = NULL;
1995 	gchar* t = NULL;
1996 	GtkWidget *entry;
1997 	if(response_id != GTK_RESPONSE_OK) return;
1998 	dirname = gabedit_folder_chooser_get_current_folder(GABEDIT_FOLDER_CHOOSER(dirSelector));
1999 
2000 
2001 	entry = (GtkWidget*)(g_object_get_data(G_OBJECT(dirSelector),"EntryFile"));
2002 	gtk_entry_set_text(GTK_ENTRY(entry),dirname);
2003 
2004 	if(orcaDirectory) g_free(orcaDirectory);
2005 	orcaDirectory = g_strdup(dirname);
2006 	t = g_strdup_printf("%s;%s",orcaDirectory,g_getenv("PATH"));
2007 	g_setenv("PATH",t,TRUE);
2008 	g_free(t);
2009 }
2010 /********************************************************************************/
set_entry_orcaDir_selection(GtkWidget * entry)2011 static void set_entry_orcaDir_selection(GtkWidget* entry)
2012 {
2013 	GtkWidget *dirSelector;
2014 	dirSelector = selctionOfDir(set_entry_orcadir, _("Select Orca folder"), GABEDIT_TYPEWIN_ORB);
2015   	gtk_window_set_modal (GTK_WINDOW (dirSelector), TRUE);
2016   	g_signal_connect(G_OBJECT(dirSelector),"delete_event", (GCallback)gtk_widget_destroy,NULL);
2017 
2018 	g_object_set_data(G_OBJECT (dirSelector), "EntryFile", entry);
2019 
2020 	g_signal_connect (dirSelector, "response",  G_CALLBACK (set_entry_orcadir), GTK_OBJECT(dirSelector));
2021 	g_signal_connect (dirSelector, "response",  G_CALLBACK (gtk_widget_destroy), GTK_OBJECT(dirSelector));
2022 
2023 	gtk_widget_show(dirSelector);
2024 }
2025 /********************************************************************************/
set_entry_nwchemdir(GtkWidget * dirSelector,gint response_id)2026 static void set_entry_nwchemdir(GtkWidget* dirSelector, gint response_id)
2027 {
2028 	gchar* dirname = NULL;
2029 	gchar* t = NULL;
2030 	GtkWidget *entry;
2031 	if(response_id != GTK_RESPONSE_OK) return;
2032 	dirname = gabedit_folder_chooser_get_current_folder(GABEDIT_FOLDER_CHOOSER(dirSelector));
2033 
2034 
2035 	entry = (GtkWidget*)(g_object_get_data(G_OBJECT(dirSelector),"EntryFile"));
2036 	gtk_entry_set_text(GTK_ENTRY(entry),dirname);
2037 
2038 	if(nwchemDirectory) g_free(nwchemDirectory);
2039 	nwchemDirectory = g_strdup(dirname);
2040 	t = g_strdup_printf("%s;%s",nwchemDirectory,g_getenv("PATH"));
2041 	g_setenv("PATH",t,TRUE);
2042 	g_free(t);
2043 }
2044 /********************************************************************************/
set_entry_nwchemDir_selection(GtkWidget * entry)2045 static void set_entry_nwchemDir_selection(GtkWidget* entry)
2046 {
2047 	GtkWidget *dirSelector;
2048 	dirSelector = selctionOfDir(set_entry_nwchemdir, _("Select NWChem folder"), GABEDIT_TYPEWIN_ORB);
2049   	gtk_window_set_modal (GTK_WINDOW (dirSelector), TRUE);
2050   	g_signal_connect(G_OBJECT(dirSelector),"delete_event", (GCallback)gtk_widget_destroy,NULL);
2051 
2052 	g_object_set_data(G_OBJECT (dirSelector), "EntryFile", entry);
2053 
2054 	g_signal_connect (dirSelector, "response",  G_CALLBACK (set_entry_nwchemdir), GTK_OBJECT(dirSelector));
2055 	g_signal_connect (dirSelector, "response",  G_CALLBACK (gtk_widget_destroy), GTK_OBJECT(dirSelector));
2056 
2057 	gtk_widget_show(dirSelector);
2058 }
2059 /********************************************************************************/
set_entry_psicodedir(GtkWidget * dirSelector,gint response_id)2060 static void set_entry_psicodedir(GtkWidget* dirSelector, gint response_id)
2061 {
2062 	gchar* dirname = NULL;
2063 	gchar* t = NULL;
2064 	GtkWidget *entry;
2065 	if(response_id != GTK_RESPONSE_OK) return;
2066 	dirname = gabedit_folder_chooser_get_current_folder(GABEDIT_FOLDER_CHOOSER(dirSelector));
2067 
2068 
2069 	entry = (GtkWidget*)(g_object_get_data(G_OBJECT(dirSelector),"EntryFile"));
2070 	gtk_entry_set_text(GTK_ENTRY(entry),dirname);
2071 
2072 	if(psicodeDirectory) g_free(psicodeDirectory);
2073 	psicodeDirectory = g_strdup(dirname);
2074 	t = g_strdup_printf("%s;%s",psicodeDirectory,g_getenv("PATH"));
2075 	g_setenv("PATH",t,TRUE);
2076 	g_free(t);
2077 }
2078 /********************************************************************************/
set_entry_psicodeDir_selection(GtkWidget * entry)2079 static void set_entry_psicodeDir_selection(GtkWidget* entry)
2080 {
2081 	GtkWidget *dirSelector;
2082 	dirSelector = selctionOfDir(set_entry_psicodedir, _("Select Psicode folder"), GABEDIT_TYPEWIN_ORB);
2083   	gtk_window_set_modal (GTK_WINDOW (dirSelector), TRUE);
2084   	g_signal_connect(G_OBJECT(dirSelector),"delete_event", (GCallback)gtk_widget_destroy,NULL);
2085 
2086 	g_object_set_data(G_OBJECT (dirSelector), "EntryFile", entry);
2087 
2088 	g_signal_connect (dirSelector, "response",  G_CALLBACK (set_entry_psicodedir), GTK_OBJECT(dirSelector));
2089 	g_signal_connect (dirSelector, "response",  G_CALLBACK (gtk_widget_destroy), GTK_OBJECT(dirSelector));
2090 
2091 	gtk_widget_show(dirSelector);
2092 }
2093 /********************************************************************************/
set_entry_fireflydir(GtkWidget * dirSelector,gint response_id)2094 static void set_entry_fireflydir(GtkWidget* dirSelector, gint response_id)
2095 {
2096 	gchar* dirname = NULL;
2097 	gchar* t = NULL;
2098 	GtkWidget *entry;
2099 	if(response_id != GTK_RESPONSE_OK) return;
2100 	dirname = gabedit_folder_chooser_get_current_folder(GABEDIT_FOLDER_CHOOSER(dirSelector));
2101 
2102 
2103 	entry = (GtkWidget*)(g_object_get_data(G_OBJECT(dirSelector),"EntryFile"));
2104 	gtk_entry_set_text(GTK_ENTRY(entry),dirname);
2105 
2106 	if(fireflyDirectory) g_free(fireflyDirectory);
2107 	fireflyDirectory = g_strdup(dirname);
2108 	t = g_strdup_printf("%s;%s",fireflyDirectory,g_getenv("PATH"));
2109 	g_setenv("PATH",t,TRUE);
2110 	g_free(t);
2111 }
2112 /********************************************************************************/
set_entry_fireflyDir_selection(GtkWidget * entry)2113 static void set_entry_fireflyDir_selection(GtkWidget* entry)
2114 {
2115 	GtkWidget *dirSelector;
2116 	dirSelector = selctionOfDir(set_entry_fireflydir, _("Select FireFly folder"), GABEDIT_TYPEWIN_ORB);
2117   	gtk_window_set_modal (GTK_WINDOW (dirSelector), TRUE);
2118   	g_signal_connect(G_OBJECT(dirSelector),"delete_event", (GCallback)gtk_widget_destroy,NULL);
2119 
2120 	g_object_set_data(G_OBJECT (dirSelector), "EntryFile", entry);
2121 
2122 	g_signal_connect (dirSelector, "response",  G_CALLBACK (set_entry_fireflydir), GTK_OBJECT(dirSelector));
2123 	g_signal_connect (dirSelector, "response",  G_CALLBACK (gtk_widget_destroy), GTK_OBJECT(dirSelector));
2124 
2125 	gtk_widget_show(dirSelector);
2126 }
2127 /********************************************************************************/
set_entry_mopacdir(GtkWidget * dirSelector,gint response_id)2128 static void set_entry_mopacdir(GtkWidget* dirSelector, gint response_id)
2129 {
2130 	gchar* dirname = NULL;
2131 	gchar* t = NULL;
2132 	GtkWidget *entry;
2133 	if(response_id != GTK_RESPONSE_OK) return;
2134 	dirname = gabedit_folder_chooser_get_current_folder(GABEDIT_FOLDER_CHOOSER(dirSelector));
2135 
2136 
2137 	entry = (GtkWidget*)(g_object_get_data(G_OBJECT(dirSelector),"EntryFile"));
2138 	gtk_entry_set_text(GTK_ENTRY(entry),dirname);
2139 
2140 	if(mopacDirectory) g_free(mopacDirectory);
2141 	mopacDirectory = g_strdup(dirname);
2142 	t = g_strdup_printf("%s;%s",mopacDirectory,g_getenv("PATH"));
2143 	g_setenv("PATH",t,TRUE);
2144 	g_free(t);
2145 }
2146 /********************************************************************************/
set_entry_mopacDir_selection(GtkWidget * entry)2147 static void set_entry_mopacDir_selection(GtkWidget* entry)
2148 {
2149 	GtkWidget *dirSelector;
2150 	dirSelector = selctionOfDir(set_entry_mopacdir, _("Select Mopac folder"), GABEDIT_TYPEWIN_ORB);
2151   	gtk_window_set_modal (GTK_WINDOW (dirSelector), TRUE);
2152   	g_signal_connect(G_OBJECT(dirSelector),"delete_event", (GCallback)gtk_widget_destroy,NULL);
2153 
2154 	g_object_set_data(G_OBJECT (dirSelector), "EntryFile", entry);
2155 
2156 	g_signal_connect (dirSelector, "response",  G_CALLBACK (set_entry_mopacdir), GTK_OBJECT(dirSelector));
2157 	g_signal_connect (dirSelector, "response",  G_CALLBACK (gtk_widget_destroy), GTK_OBJECT(dirSelector));
2158 
2159 	gtk_widget_show(dirSelector);
2160 }
2161 /********************************************************************************/
set_entry_povraydir(GtkWidget * dirSelector,gint response_id)2162 static void set_entry_povraydir(GtkWidget* dirSelector, gint response_id)
2163 {
2164 	gchar* dirname = NULL;
2165 	gchar* t = NULL;
2166 	GtkWidget *entry;
2167 	if(response_id != GTK_RESPONSE_OK) return;
2168 	dirname = gabedit_folder_chooser_get_current_folder(GABEDIT_FOLDER_CHOOSER(dirSelector));
2169 
2170 
2171 	entry = (GtkWidget*)(g_object_get_data(G_OBJECT(dirSelector),"EntryFile"));
2172 	gtk_entry_set_text(GTK_ENTRY(entry),dirname);
2173 
2174 	if(povrayDirectory) g_free(povrayDirectory);
2175 	povrayDirectory = g_strdup(dirname);
2176 	t = g_strdup_printf("%s;%s",povrayDirectory,g_getenv("PATH"));
2177 	g_setenv("PATH",t,TRUE);
2178 	g_free(t);
2179 }
2180 /********************************************************************************/
set_entry_povrayDir_selection(GtkWidget * entry)2181 static void set_entry_povrayDir_selection(GtkWidget* entry)
2182 {
2183 	GtkWidget *dirSelector;
2184 	dirSelector = selctionOfDir(set_entry_povraydir, _("Select PovRay folder"), GABEDIT_TYPEWIN_ORB);
2185   	gtk_window_set_modal (GTK_WINDOW (dirSelector), TRUE);
2186   	g_signal_connect(G_OBJECT(dirSelector),"delete_event", (GCallback)gtk_widget_destroy,NULL);
2187 
2188 	g_object_set_data(G_OBJECT (dirSelector), "EntryFile", entry);
2189 
2190 	g_signal_connect (dirSelector, "response",  G_CALLBACK (set_entry_povraydir), GTK_OBJECT(dirSelector));
2191 	g_signal_connect (dirSelector, "response",  G_CALLBACK (gtk_widget_destroy), GTK_OBJECT(dirSelector));
2192 
2193 	gtk_widget_show(dirSelector);
2194 }
2195 /********************************************************************************/
set_entry_gaussdir(GtkWidget * dirSelector,gint response_id)2196 static void set_entry_gaussdir(GtkWidget* dirSelector, gint response_id)
2197 {
2198 	gchar* dirname = NULL;
2199 	gchar* t = NULL;
2200 	GtkWidget *entry;
2201 	if(response_id != GTK_RESPONSE_OK) return;
2202 	dirname = gabedit_folder_chooser_get_current_folder(GABEDIT_FOLDER_CHOOSER(dirSelector));
2203 
2204 
2205 	entry = (GtkWidget*)(g_object_get_data(G_OBJECT(dirSelector),"EntryFile"));
2206 	gtk_entry_set_text(GTK_ENTRY(entry),dirname);
2207 
2208 	if(gaussDirectory) g_free(gaussDirectory);
2209 	gaussDirectory = g_strdup(dirname);
2210 	t = g_strdup_printf("%s;%s",gaussDirectory,g_getenv("PATH"));
2211 	g_setenv("PATH",t,TRUE);
2212 	g_free(t);
2213 }
2214 /********************************************************************************/
set_entry_gaussDir_selection(GtkWidget * entry)2215 static void set_entry_gaussDir_selection(GtkWidget* entry)
2216 {
2217 	GtkWidget *dirSelector;
2218 	dirSelector = selctionOfDir(set_entry_gaussdir, _("Select Gaussian folder"), GABEDIT_TYPEWIN_ORB);
2219   	gtk_window_set_modal (GTK_WINDOW (dirSelector), TRUE);
2220   	g_signal_connect(G_OBJECT(dirSelector),"delete_event", (GCallback)gtk_widget_destroy,NULL);
2221 
2222 	g_object_set_data(G_OBJECT (dirSelector), "EntryFile", entry);
2223 
2224 	g_signal_connect (dirSelector, "response",  G_CALLBACK (set_entry_gaussdir), GTK_OBJECT(dirSelector));
2225 	g_signal_connect (dirSelector, "response",  G_CALLBACK (gtk_widget_destroy), GTK_OBJECT(dirSelector));
2226 
2227 	gtk_widget_show(dirSelector);
2228 }
2229 #endif
2230 /********************************************************************************/
set_entry_openbabeldir(GtkWidget * dirSelector,gint response_id)2231 static void set_entry_openbabeldir(GtkWidget* dirSelector, gint response_id)
2232 {
2233 	gchar* dirname = NULL;
2234 	gchar* t = NULL;
2235 	GtkWidget *entry;
2236 	if(response_id != GTK_RESPONSE_OK) return;
2237 	dirname = gabedit_folder_chooser_get_current_folder(GABEDIT_FOLDER_CHOOSER(dirSelector));
2238 
2239 
2240 	entry = (GtkWidget*)(g_object_get_data(G_OBJECT(dirSelector),"EntryFile"));
2241 	gtk_entry_set_text(GTK_ENTRY(entry),dirname);
2242 
2243 	if(openbabelDirectory) g_free(openbabelDirectory);
2244 	openbabelDirectory = g_strdup(dirname);
2245 	t = g_strdup_printf("%s;%s",openbabelDirectory,g_getenv("PATH"));
2246 	g_setenv("PATH",t,TRUE);
2247 	g_free(t);
2248 	if(babelCommand) g_free(babelCommand);
2249 	babelCommand = g_strdup_printf("%s%sobabel",openbabelDirectory,G_DIR_SEPARATOR_S);
2250 }
2251 /********************************************************************************/
set_entry_openbabelDir_selection(GtkWidget * entry)2252 static void set_entry_openbabelDir_selection(GtkWidget* entry)
2253 {
2254 	GtkWidget *dirSelector;
2255 	dirSelector = selctionOfDir(set_entry_openbabeldir, _("Select PovRay folder"), GABEDIT_TYPEWIN_ORB);
2256   	gtk_window_set_modal (GTK_WINDOW (dirSelector), TRUE);
2257   	g_signal_connect(G_OBJECT(dirSelector),"delete_event", (GCallback)gtk_widget_destroy,NULL);
2258 
2259 	g_object_set_data(G_OBJECT (dirSelector), "EntryFile", entry);
2260 
2261 	g_signal_connect (dirSelector, "response",  G_CALLBACK (set_entry_openbabeldir), GTK_OBJECT(dirSelector));
2262 	g_signal_connect (dirSelector, "response",  G_CALLBACK (gtk_widget_destroy), GTK_OBJECT(dirSelector));
2263 
2264 	gtk_widget_show(dirSelector);
2265 }
2266 /********************************************************************************/
create_execucte_commands(GtkWidget * Wins,GtkWidget * vbox,gboolean expand)2267 void  create_execucte_commands(GtkWidget *Wins,GtkWidget *vbox,gboolean expand)
2268 {
2269   GtkWidget *hbox;
2270   GtkWidget *label;
2271   GtkWidget *frame;
2272   GtkWidget *combo;
2273   GtkWidget *button;
2274 
2275   frame = gtk_frame_new (_("Commands to execute Computational Chemistry Packages"));
2276   gtk_widget_show (frame);
2277   gtk_box_pack_start (GTK_BOX (vbox), frame, expand, expand, 0);
2278   gtk_frame_set_label_align (GTK_FRAME (frame), 0.5, 0.5);
2279 
2280   vbox = gtk_vbox_new (FALSE, 0);
2281   gtk_container_add (GTK_CONTAINER (frame), vbox);
2282 
2283 
2284 /* ------------------------------------------------------------------*/
2285   hbox = gtk_hbox_new (FALSE, 0);
2286   gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 3);
2287   label = gtk_label_new (_("Command for execute Gamess : "));
2288   gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 3);
2289 
2290   combo = create_combo_box_entry(gamessCommands.commands,gamessCommands.numberOfCommands,TRUE,-1,-1);
2291   ComboGamess = combo;
2292   EntryGamess = GTK_BIN(combo)->child;
2293   gtk_box_pack_start (GTK_BOX (hbox), combo, TRUE, TRUE, 3);
2294   gtk_entry_set_text (GTK_ENTRY (EntryGamess),NameCommandGamess );
2295   g_signal_connect(G_OBJECT (EntryGamess), "activate",
2296 			(GCallback)modify_gamess_command,
2297 			NULL);
2298 
2299   button = create_button(Wins,_("  Remove from list  "));
2300   ButtonGamess = button;
2301   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2302   if(gamessCommands.numberOfCommands<2)
2303   	gtk_widget_set_sensitive(button, FALSE);
2304   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(remove_gamess_command),NULL);
2305 
2306   button = create_button(Wins,_("  Help  "));
2307   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2308   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(help_commands),NULL);
2309 /* ------------------------------------------------------------------*/
2310   gtk_widget_realize(Wins);
2311 
2312   create_hseparator(vbox);
2313 
2314 /* ------------------------------------------------------------------*/
2315   hbox = gtk_hbox_new (FALSE, 0);
2316   gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 3);
2317   label = gtk_label_new (_("Command for execute DeMon    : "));
2318   gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 3);
2319 
2320   combo = create_combo_box_entry(demonCommands.commands,demonCommands.numberOfCommands,TRUE,-1,-1);
2321   ComboDeMon = combo;
2322   EntryDeMon =  GTK_BIN(combo)->child;
2323   gtk_box_pack_start (GTK_BOX (hbox), combo, TRUE, TRUE, 3);
2324   gtk_entry_set_text (GTK_ENTRY (EntryDeMon),NameCommandDeMon);
2325   g_signal_connect(G_OBJECT (EntryDeMon), "activate",
2326 			(GCallback)modify_demon_command,
2327 			NULL);
2328   button = create_button(Wins,_("  Remove from list  "));
2329   ButtonDeMon = button;
2330   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2331   if(demonCommands.numberOfCommands<2)
2332   	gtk_widget_set_sensitive(button, FALSE);
2333   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(remove_demon_command),NULL);
2334 
2335   button = create_button(Wins,_("  Help  "));
2336   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2337   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(help_commands),NULL);
2338 /* ------------------------------------------------------------------*/
2339 
2340   create_hseparator(vbox);
2341 
2342 
2343 /* ------------------------------------------------------------------*/
2344   hbox = gtk_hbox_new (FALSE, 0);
2345   gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 3);
2346   label = gtk_label_new (_("Command for execute Gaussian : "));
2347   gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 3);
2348 
2349   combo = create_combo_box_entry(gaussianCommands.commands,gaussianCommands.numberOfCommands,TRUE,-1,-1);
2350   ComboGaussian = combo;
2351   EntryGaussian = GTK_BIN(combo)->child;
2352   gtk_box_pack_start (GTK_BOX (hbox), combo, TRUE, TRUE, 3);
2353   gtk_entry_set_text (GTK_ENTRY (EntryGaussian),NameCommandGaussian );
2354   g_signal_connect(G_OBJECT (EntryGaussian), "activate",
2355 			(GCallback)modify_gaussian_command,
2356 			NULL);
2357 
2358   button = create_button(Wins,_("  Remove from list  "));
2359   ButtonGaussian = button;
2360   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2361   if(gaussianCommands.numberOfCommands<2) gtk_widget_set_sensitive(button, FALSE);
2362   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(remove_gaussian_command),NULL);
2363 
2364   button = create_button(Wins,_("  Help  "));
2365   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2366   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(help_commands),NULL);
2367 /* ------------------------------------------------------------------*/
2368 
2369   create_hseparator(vbox);
2370 
2371 /* ------------------------------------------------------------------*/
2372   hbox = gtk_hbox_new (FALSE, 0);
2373   gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 3);
2374   label = gtk_label_new (_("Command for execute Molpro    : "));
2375   gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 3);
2376 
2377   combo = create_combo_box_entry(molproCommands.commands,molproCommands.numberOfCommands,TRUE,-1,-1);
2378   ComboMolpro = combo;
2379   EntryMolpro =  GTK_BIN(combo)->child;
2380   gtk_box_pack_start (GTK_BOX (hbox), combo, TRUE, TRUE, 3);
2381   gtk_entry_set_text (GTK_ENTRY (EntryMolpro),NameCommandMolpro);
2382   g_signal_connect(G_OBJECT (EntryMolpro), "activate",
2383 			(GCallback)modify_molpro_command,
2384 			NULL);
2385   button = create_button(Wins,_("  Remove from list  "));
2386   ButtonMolpro = button;
2387   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2388   if(molproCommands.numberOfCommands<2)
2389   	gtk_widget_set_sensitive(button, FALSE);
2390   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(remove_molpro_command),NULL);
2391 
2392   button = create_button(Wins,_("  Help  "));
2393   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2394   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(help_commands),NULL);
2395 /* ------------------------------------------------------------------*/
2396 
2397   create_hseparator(vbox);
2398 
2399 /* ------------------------------------------------------------------*/
2400   hbox = gtk_hbox_new (FALSE, 0);
2401   gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 3);
2402   label = gtk_label_new (_("Command for execute Molcas    : "));
2403   gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 3);
2404 
2405   combo = create_combo_box_entry(molcasCommands.commands,molcasCommands.numberOfCommands,TRUE,-1,-1);
2406   ComboMolcas = combo;
2407   EntryMolcas =  GTK_BIN(combo)->child;
2408   gtk_box_pack_start (GTK_BOX (hbox), combo, TRUE, TRUE, 3);
2409   gtk_entry_set_text (GTK_ENTRY (EntryMolcas),NameCommandMolcas);
2410   g_signal_connect(G_OBJECT (EntryMolcas), "activate",
2411 			(GCallback)modify_molcas_command,
2412 			NULL);
2413   button = create_button(Wins,_("  Remove from list  "));
2414   ButtonMolcas = button;
2415   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2416   if(molcasCommands.numberOfCommands<2)
2417   	gtk_widget_set_sensitive(button, FALSE);
2418   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(remove_molcas_command),NULL);
2419 
2420   button = create_button(Wins,_("  Help  "));
2421   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2422   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(help_commands),NULL);
2423 /* ------------------------------------------------------------------*/
2424 
2425   create_hseparator(vbox);
2426 
2427 /* ------------------------------------------------------------------*/
2428   hbox = gtk_hbox_new (FALSE, 0);
2429   gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 3);
2430   label = gtk_label_new (_("Command for execute MPQC    : "));
2431   gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 3);
2432 
2433   combo = create_combo_box_entry(mpqcCommands.commands,mpqcCommands.numberOfCommands,TRUE,-1,-1);
2434   ComboMPQC = combo;
2435   EntryMPQC =  GTK_BIN(combo)->child;
2436   gtk_box_pack_start (GTK_BOX (hbox), combo, TRUE, TRUE, 3);
2437   gtk_entry_set_text (GTK_ENTRY (EntryMPQC),NameCommandMPQC);
2438   g_signal_connect(G_OBJECT (EntryMPQC), "activate",
2439 			(GCallback)modify_mpqc_command,
2440 			NULL);
2441   button = create_button(Wins,_("  Remove from list  "));
2442   ButtonMPQC = button;
2443   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2444   if(mpqcCommands.numberOfCommands<2)
2445   	gtk_widget_set_sensitive(button, FALSE);
2446   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(remove_mpqc_command),NULL);
2447 
2448   button = create_button(Wins,_("  Help  "));
2449   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2450   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(help_commands),NULL);
2451 
2452 /* ------------------------------------------------------------------*/
2453   create_hseparator(vbox);
2454 /* ------------------------------------------------------------------*/
2455   hbox = gtk_hbox_new (FALSE, 0);
2456   gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 3);
2457   label = gtk_label_new (_("Command for execute Orca       : "));
2458   gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 3);
2459 
2460   combo = create_combo_box_entry(orcaCommands.commands,orcaCommands.numberOfCommands,TRUE,-1,-1);
2461   ComboOrca = combo;
2462   EntryOrca =  GTK_BIN(combo)->child;
2463   gtk_box_pack_start (GTK_BOX (hbox), combo, TRUE, TRUE, 3);
2464   gtk_entry_set_text (GTK_ENTRY (EntryOrca),NameCommandOrca);
2465   g_signal_connect(G_OBJECT (EntryOrca), "activate", (GCallback)modify_orca_command, NULL);
2466   button = create_button(Wins,_("  Remove from list  "));
2467   ButtonOrca = button;
2468   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2469   if(orcaCommands.numberOfCommands<2)
2470   	gtk_widget_set_sensitive(button, FALSE);
2471   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(remove_orca_command),NULL);
2472 
2473   button = create_button(Wins,_("  Help  "));
2474   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2475   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(help_commands),NULL);
2476 
2477   create_hseparator(vbox);
2478 /* ------------------------------------------------------------------*/
2479   hbox = gtk_hbox_new (FALSE, 0);
2480   gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 3);
2481   label = gtk_label_new (_("Command for execute NWChem       : "));
2482   gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 3);
2483 
2484   combo = create_combo_box_entry(nwchemCommands.commands,nwchemCommands.numberOfCommands,TRUE,-1,-1);
2485   ComboNWChem = combo;
2486   EntryNWChem =  GTK_BIN(combo)->child;
2487   gtk_box_pack_start (GTK_BOX (hbox), combo, TRUE, TRUE, 3);
2488   gtk_entry_set_text (GTK_ENTRY (EntryNWChem),NameCommandNWChem);
2489   g_signal_connect(G_OBJECT (EntryNWChem), "activate", (GCallback)modify_nwchem_command, NULL);
2490   button = create_button(Wins,_("  Remove from list  "));
2491   ButtonNWChem = button;
2492   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2493   if(nwchemCommands.numberOfCommands<2)
2494   	gtk_widget_set_sensitive(button, FALSE);
2495   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(remove_nwchem_command),NULL);
2496 
2497   button = create_button(Wins,_("  Help  "));
2498   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2499   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(help_commands),NULL);
2500 
2501   create_hseparator(vbox);
2502 /* ------------------------------------------------------------------*/
2503   hbox = gtk_hbox_new (FALSE, 0);
2504   gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 3);
2505   label = gtk_label_new (_("Command for execute Psicode       : "));
2506   gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 3);
2507 
2508   combo = create_combo_box_entry(psicodeCommands.commands,psicodeCommands.numberOfCommands,TRUE,-1,-1);
2509   ComboPsicode = combo;
2510   EntryPsicode =  GTK_BIN(combo)->child;
2511   gtk_box_pack_start (GTK_BOX (hbox), combo, TRUE, TRUE, 3);
2512   gtk_entry_set_text (GTK_ENTRY (EntryPsicode),NameCommandPsicode);
2513   g_signal_connect(G_OBJECT (EntryPsicode), "activate", (GCallback)modify_psicode_command, NULL);
2514   button = create_button(Wins,_("  Remove from list  "));
2515   ButtonPsicode = button;
2516   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2517   if(psicodeCommands.numberOfCommands<2)
2518   	gtk_widget_set_sensitive(button, FALSE);
2519   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(remove_psicode_command),NULL);
2520 
2521   button = create_button(Wins,_("  Help  "));
2522   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2523   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(help_commands),NULL);
2524 
2525   create_hseparator(vbox);
2526 /* ------------------------------------------------------------------*/
2527   hbox = gtk_hbox_new (FALSE, 0);
2528   gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 3);
2529   label = gtk_label_new (_("Command for execute FireFly    : "));
2530   gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 3);
2531 
2532   combo = create_combo_box_entry(fireflyCommands.commands,fireflyCommands.numberOfCommands,TRUE,-1,-1);
2533   ComboFireFly = combo;
2534   EntryFireFly =  GTK_BIN(combo)->child;
2535   gtk_box_pack_start (GTK_BOX (hbox), combo, TRUE, TRUE, 3);
2536   gtk_entry_set_text (GTK_ENTRY (EntryFireFly),NameCommandFireFly);
2537   g_signal_connect(G_OBJECT (EntryFireFly), "activate", (GCallback)modify_firefly_command, NULL);
2538   button = create_button(Wins,_("  Remove from list  "));
2539   ButtonFireFly = button;
2540   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2541   if(fireflyCommands.numberOfCommands<2)
2542   	gtk_widget_set_sensitive(button, FALSE);
2543   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(remove_firefly_command),NULL);
2544 
2545   button = create_button(Wins,_("  Help  "));
2546   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2547   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(help_commands),NULL);
2548 /* ------------------------------------------------------------------*/
2549   create_hseparator(vbox);
2550 /* ------------------------------------------------------------------*/
2551   hbox = gtk_hbox_new (FALSE, 0);
2552   gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 3);
2553   label = gtk_label_new (_("Command for execute Q-Chem    : "));
2554   gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 3);
2555 
2556   combo = create_combo_box_entry(qchemCommands.commands,qchemCommands.numberOfCommands,TRUE,-1,-1);
2557   ComboQChem = combo;
2558   EntryQChem =  GTK_BIN(combo)->child;
2559   gtk_box_pack_start (GTK_BOX (hbox), combo, TRUE, TRUE, 3);
2560   gtk_entry_set_text (GTK_ENTRY (EntryQChem),NameCommandQChem);
2561   g_signal_connect(G_OBJECT (EntryQChem), "activate", (GCallback)modify_qchem_command, NULL);
2562   button = create_button(Wins,_("  Remove from list  "));
2563   ButtonQChem = button;
2564   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2565   if(qchemCommands.numberOfCommands<2)
2566   	gtk_widget_set_sensitive(button, FALSE);
2567   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(remove_qchem_command),NULL);
2568 
2569   button = create_button(Wins,_("  Help  "));
2570   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2571   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(help_commands),NULL);
2572 /* ------------------------------------------------------------------*/
2573   create_hseparator(vbox);
2574 /* ------------------------------------------------------------------*/
2575   hbox = gtk_hbox_new (FALSE, 0);
2576   gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 3);
2577   label = gtk_label_new (_("Command for execute Mopac    : "));
2578   gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 3);
2579 
2580   combo = create_combo_box_entry(mopacCommands.commands,mopacCommands.numberOfCommands,TRUE,-1,-1);
2581   ComboMopac = combo;
2582   EntryMopac =  GTK_BIN(combo)->child;
2583   gtk_box_pack_start (GTK_BOX (hbox), combo, TRUE, TRUE, 3);
2584   gtk_entry_set_text (GTK_ENTRY (EntryMopac),NameCommandMopac);
2585   g_signal_connect(G_OBJECT (EntryMopac), "activate", (GCallback)modify_mopac_command, NULL);
2586   button = create_button(Wins,_("  Remove from list  "));
2587   ButtonMopac = button;
2588   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2589   if(mopacCommands.numberOfCommands<2)
2590   	gtk_widget_set_sensitive(button, FALSE);
2591   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(remove_mopac_command),NULL);
2592 
2593   button = create_button(Wins,_("  Help  "));
2594   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2595   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(help_commands),NULL);
2596 /* ------------------------------------------------------------------*/
2597   create_hseparator(vbox);
2598 /* ------------------------------------------------------------------*/
2599   hbox = gtk_hbox_new (FALSE, 0);
2600   gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 3);
2601   label = gtk_label_new (_("Command for execute Povray    : "));
2602   gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 3);
2603 
2604   combo = create_combo_box_entry(povrayCommands.commands,povrayCommands.numberOfCommands,TRUE,-1,-1);
2605   ComboPovray = combo;
2606   EntryPovray =  GTK_BIN(combo)->child;
2607   gtk_box_pack_start (GTK_BOX (hbox), combo, TRUE, TRUE, 3);
2608   gtk_entry_set_text (GTK_ENTRY (EntryPovray),NameCommandPovray);
2609   g_signal_connect(G_OBJECT (EntryPovray), "activate", (GCallback)modify_povray_command, NULL);
2610   button = create_button(Wins,_("  Remove from list  "));
2611   ButtonPovray = button;
2612   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2613   if(povrayCommands.numberOfCommands<2)
2614   	gtk_widget_set_sensitive(button, FALSE);
2615   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(remove_povray_command),NULL);
2616 
2617   button = create_button(Wins,_("  Help  "));
2618   gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 3);
2619   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(help_commands),NULL);
2620 /* ------------------------------------------------------------------*/
2621 /* ------------------------------------------------------------------*/
2622   create_hseparator(vbox);
2623 
2624 /*#ifdef G_OS_WIN32*/
2625 /*
2626   // Remove it. Now babelCommand=openbabelDirectory/obabel
2627   {
2628 	GtkWidget* entry;
2629   	GtkWidget *table = gtk_table_new(1,3,FALSE);
2630 
2631 	if(!babelCommand) babelCommand = g_strdup_printf("%s%sbabel.exe",g_get_current_dir(),G_DIR_SEPARATOR_S);
2632 
2633 	gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0);
2634 
2635 	add_label_table(table,_("Command for Open Babel         : "),0,0);
2636   	entry = gtk_entry_new ();
2637 	entrybabel = entry;
2638 	gtk_widget_set_size_request(GTK_WIDGET(entry),-1,32);
2639 	gtk_table_attach(GTK_TABLE(table),entry,1,1+1,0,0+1,
2640                   (GtkAttachOptions)(GTK_FILL | GTK_EXPAND),
2641                   (GtkAttachOptions)(GTK_FILL | GTK_EXPAND),
2642                   3,3);
2643   	gtk_entry_set_text (GTK_ENTRY (entry),babelCommand);
2644 	gtk_editable_set_editable((GtkEditable*)entry,TRUE);
2645 	gtk_widget_set_sensitive(entry, TRUE);
2646 	button = create_button_pixmap(Wins,open_xpm,NULL);
2647 	GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
2648 	g_signal_connect_swapped(GTK_OBJECT (button), "clicked",
2649                                      G_CALLBACK(set_entry_babel_selction),
2650                                      GTK_OBJECT(entry));
2651 	add_widget_table(table,button,0,2);
2652   	g_signal_connect(G_OBJECT (entrybabel), "changed",
2653 			(GCallback)changed_babel,
2654 			NULL);
2655   }
2656 */
2657 /*#endif*/
2658   create_hseparator(vbox);
2659   gtk_widget_show_all(frame);
2660 
2661 }
2662 #ifdef G_OS_WIN32
2663 /********************************************************************************/
create_gamess_directory(GtkWidget * Wins,GtkWidget * vbox,gboolean expand)2664 void  create_gamess_directory(GtkWidget *Wins,GtkWidget *vbox,gboolean expand)
2665 {
2666   GtkWidget *frame;
2667   GtkWidget *button;
2668 
2669   frame = gtk_frame_new (NULL);
2670   gtk_widget_show (frame);
2671   gtk_box_pack_start (GTK_BOX (vbox), frame, expand, expand, 0);
2672   gtk_frame_set_label_align (GTK_FRAME (frame), 0.5, 0.5);
2673 
2674   vbox = gtk_vbox_new (FALSE, 0);
2675   gtk_container_add (GTK_CONTAINER (frame), vbox);
2676 
2677 
2678   {
2679 	GtkWidget* entry;
2680   	GtkWidget *table = gtk_table_new(1,3,FALSE);
2681 
2682 	if(!gamessDirectory) gamessDirectory = g_strdup_printf("%s",g_get_home_dir());
2683 
2684 	gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0);
2685 
2686 	add_label_table(table,_("Gamess directory                        : "),0,0);
2687   	entry = gtk_entry_new ();
2688 	gtk_widget_set_size_request(GTK_WIDGET(entry),-1,32);
2689 	gtk_table_attach(GTK_TABLE(table),entry,1,1+1,0,0+1,
2690                   (GtkAttachOptions)(GTK_FILL | GTK_EXPAND),
2691                   (GtkAttachOptions)(GTK_FILL | GTK_EXPAND),
2692                   3,3);
2693   	gtk_entry_set_text (GTK_ENTRY (entry),gamessDirectory);
2694 	gtk_editable_set_editable((GtkEditable*)entry,FALSE);
2695 	gtk_widget_set_sensitive(entry, FALSE);
2696 	button = create_button_pixmap(Wins,open_xpm,NULL);
2697 	GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
2698 	g_signal_connect_swapped(GTK_OBJECT (button), "clicked",
2699                                      G_CALLBACK(set_entry_gamessDir_selection),
2700                                      GTK_OBJECT(entry));
2701 	add_widget_table(table,button,0,2);
2702   }
2703   gtk_widget_show_all(frame);
2704 }
2705 #endif
2706 #ifdef G_OS_WIN32
2707 /********************************************************************************/
create_demon_directory(GtkWidget * Wins,GtkWidget * vbox,gboolean expand)2708 void  create_demon_directory(GtkWidget *Wins,GtkWidget *vbox,gboolean expand)
2709 {
2710   GtkWidget *frame;
2711   GtkWidget *button;
2712 
2713   frame = gtk_frame_new (NULL);
2714   gtk_widget_show (frame);
2715   gtk_box_pack_start (GTK_BOX (vbox), frame, expand, expand, 0);
2716   gtk_frame_set_label_align (GTK_FRAME (frame), 0.5, 0.5);
2717 
2718   vbox = gtk_vbox_new (FALSE, 0);
2719   gtk_container_add (GTK_CONTAINER (frame), vbox);
2720 
2721 
2722   {
2723 	GtkWidget* entry;
2724   	GtkWidget *table = gtk_table_new(1,3,FALSE);
2725 
2726 	if(!demonDirectory) demonDirectory = g_strdup_printf("%s",g_get_home_dir());
2727 
2728 	gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0);
2729 
2730 	add_label_table(table,_("Demon directory                        : "),0,0);
2731   	entry = gtk_entry_new ();
2732 	gtk_widget_set_size_request(GTK_WIDGET(entry),-1,32);
2733 	gtk_table_attach(GTK_TABLE(table),entry,1,1+1,0,0+1,
2734                   (GtkAttachOptions)(GTK_FILL | GTK_EXPAND),
2735                   (GtkAttachOptions)(GTK_FILL | GTK_EXPAND),
2736                   3,3);
2737   	gtk_entry_set_text (GTK_ENTRY (entry),demonDirectory);
2738 	gtk_editable_set_editable((GtkEditable*)entry,FALSE);
2739 	gtk_widget_set_sensitive(entry, FALSE);
2740 	button = create_button_pixmap(Wins,open_xpm,NULL);
2741 	GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
2742 	g_signal_connect_swapped(GTK_OBJECT (button), "clicked",
2743                                      G_CALLBACK(set_entry_demonDir_selection),
2744                                      GTK_OBJECT(entry));
2745 	add_widget_table(table,button,0,2);
2746   }
2747   gtk_widget_show_all(frame);
2748 }
2749 #endif
2750 #ifdef G_OS_WIN32
2751 /********************************************************************************/
create_orca_directory(GtkWidget * Wins,GtkWidget * vbox,gboolean expand)2752 void  create_orca_directory(GtkWidget *Wins,GtkWidget *vbox,gboolean expand)
2753 {
2754   GtkWidget *frame;
2755   GtkWidget *button;
2756 
2757   frame = gtk_frame_new (NULL);
2758   gtk_widget_show (frame);
2759   gtk_box_pack_start (GTK_BOX (vbox), frame, expand, expand, 0);
2760   gtk_frame_set_label_align (GTK_FRAME (frame), 0.5, 0.5);
2761 
2762   vbox = gtk_vbox_new (FALSE, 0);
2763   gtk_container_add (GTK_CONTAINER (frame), vbox);
2764 
2765 
2766   {
2767 	GtkWidget* entry;
2768   	GtkWidget *table = gtk_table_new(1,3,FALSE);
2769 
2770 	if(!orcaDirectory) orcaDirectory = g_strdup_printf("%s",g_get_home_dir());
2771 
2772 	gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0);
2773 
2774 	add_label_table(table,_("Orca directory                        : "),0,0);
2775   	entry = gtk_entry_new ();
2776 	gtk_widget_set_size_request(GTK_WIDGET(entry),-1,32);
2777 	gtk_table_attach(GTK_TABLE(table),entry,1,1+1,0,0+1,
2778                   (GtkAttachOptions)(GTK_FILL | GTK_EXPAND),
2779                   (GtkAttachOptions)(GTK_FILL | GTK_EXPAND),
2780                   3,3);
2781   	gtk_entry_set_text (GTK_ENTRY (entry),orcaDirectory);
2782 	gtk_editable_set_editable((GtkEditable*)entry,FALSE);
2783 	gtk_widget_set_sensitive(entry, FALSE);
2784 	button = create_button_pixmap(Wins,open_xpm,NULL);
2785 	GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
2786 	g_signal_connect_swapped(GTK_OBJECT (button), "clicked",
2787                                      G_CALLBACK(set_entry_orcaDir_selection),
2788                                      GTK_OBJECT(entry));
2789 	add_widget_table(table,button,0,2);
2790   }
2791   gtk_widget_show_all(frame);
2792 }
2793 #endif
2794 #ifdef G_OS_WIN32
2795 /********************************************************************************/
create_nwchem_directory(GtkWidget * Wins,GtkWidget * vbox,gboolean expand)2796 void  create_nwchem_directory(GtkWidget *Wins,GtkWidget *vbox,gboolean expand)
2797 {
2798   GtkWidget *frame;
2799   GtkWidget *button;
2800 
2801   frame = gtk_frame_new (NULL);
2802   gtk_widget_show (frame);
2803   gtk_box_pack_start (GTK_BOX (vbox), frame, expand, expand, 0);
2804   gtk_frame_set_label_align (GTK_FRAME (frame), 0.5, 0.5);
2805 
2806   vbox = gtk_vbox_new (FALSE, 0);
2807   gtk_container_add (GTK_CONTAINER (frame), vbox);
2808 
2809 
2810   {
2811 	GtkWidget* entry;
2812   	GtkWidget *table = gtk_table_new(1,3,FALSE);
2813 
2814 	if(!nwchemDirectory) nwchemDirectory = g_strdup_printf("%s",g_get_home_dir());
2815 
2816 	gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0);
2817 
2818 	add_label_table(table,_("NWChem directory                        : "),0,0);
2819   	entry = gtk_entry_new ();
2820 	gtk_widget_set_size_request(GTK_WIDGET(entry),-1,32);
2821 	gtk_table_attach(GTK_TABLE(table),entry,1,1+1,0,0+1,
2822                   (GtkAttachOptions)(GTK_FILL | GTK_EXPAND),
2823                   (GtkAttachOptions)(GTK_FILL | GTK_EXPAND),
2824                   3,3);
2825   	gtk_entry_set_text (GTK_ENTRY (entry),nwchemDirectory);
2826 	gtk_editable_set_editable((GtkEditable*)entry,FALSE);
2827 	gtk_widget_set_sensitive(entry, FALSE);
2828 	button = create_button_pixmap(Wins,open_xpm,NULL);
2829 	GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
2830 	g_signal_connect_swapped(GTK_OBJECT (button), "clicked",
2831                                      G_CALLBACK(set_entry_nwchemDir_selection),
2832                                      GTK_OBJECT(entry));
2833 	add_widget_table(table,button,0,2);
2834   }
2835   gtk_widget_show_all(frame);
2836 }
2837 #endif
2838 #ifdef G_OS_WIN32
2839 /********************************************************************************/
create_psicode_directory(GtkWidget * Wins,GtkWidget * vbox,gboolean expand)2840 void  create_psicode_directory(GtkWidget *Wins,GtkWidget *vbox,gboolean expand)
2841 {
2842   GtkWidget *frame;
2843   GtkWidget *button;
2844 
2845   frame = gtk_frame_new (NULL);
2846   gtk_widget_show (frame);
2847   gtk_box_pack_start (GTK_BOX (vbox), frame, expand, expand, 0);
2848   gtk_frame_set_label_align (GTK_FRAME (frame), 0.5, 0.5);
2849 
2850   vbox = gtk_vbox_new (FALSE, 0);
2851   gtk_container_add (GTK_CONTAINER (frame), vbox);
2852 
2853 
2854   {
2855 	GtkWidget* entry;
2856   	GtkWidget *table = gtk_table_new(1,3,FALSE);
2857 
2858 	if(!psicodeDirectory) psicodeDirectory = g_strdup_printf("%s",g_get_home_dir());
2859 
2860 	gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0);
2861 
2862 	add_label_table(table,_("Psicode directory                        : "),0,0);
2863   	entry = gtk_entry_new ();
2864 	gtk_widget_set_size_request(GTK_WIDGET(entry),-1,32);
2865 	gtk_table_attach(GTK_TABLE(table),entry,1,1+1,0,0+1,
2866                   (GtkAttachOptions)(GTK_FILL | GTK_EXPAND),
2867                   (GtkAttachOptions)(GTK_FILL | GTK_EXPAND),
2868                   3,3);
2869   	gtk_entry_set_text (GTK_ENTRY (entry),psicodeDirectory);
2870 	gtk_editable_set_editable((GtkEditable*)entry,FALSE);
2871 	gtk_widget_set_sensitive(entry, FALSE);
2872 	button = create_button_pixmap(Wins,open_xpm,NULL);
2873 	GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
2874 	g_signal_connect_swapped(GTK_OBJECT (button), "clicked",
2875                                      G_CALLBACK(set_entry_psicodeDir_selection),
2876                                      GTK_OBJECT(entry));
2877 	add_widget_table(table,button,0,2);
2878   }
2879   gtk_widget_show_all(frame);
2880 }
2881 #endif
2882 #ifdef G_OS_WIN32
2883 /********************************************************************************/
create_firefly_directory(GtkWidget * Wins,GtkWidget * vbox,gboolean expand)2884 void  create_firefly_directory(GtkWidget *Wins,GtkWidget *vbox,gboolean expand)
2885 {
2886   GtkWidget *frame;
2887   GtkWidget *button;
2888 
2889   frame = gtk_frame_new (NULL);
2890   gtk_widget_show (frame);
2891   gtk_box_pack_start (GTK_BOX (vbox), frame, expand, expand, 0);
2892   gtk_frame_set_label_align (GTK_FRAME (frame), 0.5, 0.5);
2893 
2894   vbox = gtk_vbox_new (FALSE, 0);
2895   gtk_container_add (GTK_CONTAINER (frame), vbox);
2896 
2897 
2898   {
2899 	GtkWidget* entry;
2900   	GtkWidget *table = gtk_table_new(1,3,FALSE);
2901 
2902 	if(!fireflyDirectory) fireflyDirectory = g_strdup_printf("%s",g_get_home_dir());
2903 
2904 	gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0);
2905 
2906 	add_label_table(table,_("FireFly directory                        : "),0,0);
2907   	entry = gtk_entry_new ();
2908 	gtk_widget_set_size_request(GTK_WIDGET(entry),-1,32);
2909 	gtk_table_attach(GTK_TABLE(table),entry,1,1+1,0,0+1,
2910                   (GtkAttachOptions)(GTK_FILL | GTK_EXPAND),
2911                   (GtkAttachOptions)(GTK_FILL | GTK_EXPAND),
2912                   3,3);
2913   	gtk_entry_set_text (GTK_ENTRY (entry),fireflyDirectory);
2914 	gtk_editable_set_editable((GtkEditable*)entry,FALSE);
2915 	gtk_widget_set_sensitive(entry, FALSE);
2916 	button = create_button_pixmap(Wins,open_xpm,NULL);
2917 	GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
2918 	g_signal_connect_swapped(GTK_OBJECT (button), "clicked",
2919                                      G_CALLBACK(set_entry_fireflyDir_selection),
2920                                      GTK_OBJECT(entry));
2921 	add_widget_table(table,button,0,2);
2922   }
2923   gtk_widget_show_all(frame);
2924 }
2925 #endif
2926 #ifdef G_OS_WIN32
2927 /********************************************************************************/
create_mopac_directory(GtkWidget * Wins,GtkWidget * vbox,gboolean expand)2928 void  create_mopac_directory(GtkWidget *Wins,GtkWidget *vbox,gboolean expand)
2929 {
2930   GtkWidget *frame;
2931   GtkWidget *button;
2932 
2933   frame = gtk_frame_new (NULL);
2934   gtk_widget_show (frame);
2935   gtk_box_pack_start (GTK_BOX (vbox), frame, expand, expand, 0);
2936   gtk_frame_set_label_align (GTK_FRAME (frame), 0.5, 0.5);
2937 
2938   vbox = gtk_vbox_new (FALSE, 0);
2939   gtk_container_add (GTK_CONTAINER (frame), vbox);
2940 
2941 
2942   {
2943 	GtkWidget* entry;
2944   	GtkWidget *table = gtk_table_new(1,3,FALSE);
2945 
2946 	if(!mopacDirectory) mopacDirectory = g_strdup_printf("%s",g_get_home_dir());
2947 
2948 	gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0);
2949 
2950 	add_label_table(table,_("Mopac directory                         : "),0,0);
2951   	entry = gtk_entry_new ();
2952 	gtk_widget_set_size_request(GTK_WIDGET(entry),-1,32);
2953 	gtk_table_attach(GTK_TABLE(table),entry,1,1+1,0,0+1,
2954                   (GtkAttachOptions)(GTK_FILL | GTK_EXPAND),
2955                   (GtkAttachOptions)(GTK_FILL | GTK_EXPAND),
2956                   3,3);
2957   	gtk_entry_set_text (GTK_ENTRY (entry),mopacDirectory);
2958 	gtk_editable_set_editable((GtkEditable*)entry,FALSE);
2959 	gtk_widget_set_sensitive(entry, FALSE);
2960 	button = create_button_pixmap(Wins,open_xpm,NULL);
2961 	GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
2962 	g_signal_connect_swapped(GTK_OBJECT (button), "clicked",
2963                                      G_CALLBACK(set_entry_mopacDir_selection),
2964                                      GTK_OBJECT(entry));
2965 	add_widget_table(table,button,0,2);
2966   }
2967   gtk_widget_show_all(frame);
2968 }
2969 /********************************************************************************/
create_povray_directory(GtkWidget * Wins,GtkWidget * vbox,gboolean expand)2970 void  create_povray_directory(GtkWidget *Wins,GtkWidget *vbox,gboolean expand)
2971 {
2972   GtkWidget *frame;
2973   GtkWidget *button;
2974 
2975   frame = gtk_frame_new (NULL);
2976   gtk_widget_show (frame);
2977   gtk_box_pack_start (GTK_BOX (vbox), frame, expand, expand, 0);
2978   gtk_frame_set_label_align (GTK_FRAME (frame), 0.5, 0.5);
2979 
2980   vbox = gtk_vbox_new (FALSE, 0);
2981   gtk_container_add (GTK_CONTAINER (frame), vbox);
2982 
2983 
2984   {
2985 	GtkWidget* entry;
2986   	GtkWidget *table = gtk_table_new(1,3,FALSE);
2987 
2988 	if(!povrayDirectory) povrayDirectory = g_strdup_printf("%s",g_get_home_dir());
2989 
2990 	gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0);
2991 
2992 	add_label_table(table,_("PovRay directory                         : "),0,0);
2993   	entry = gtk_entry_new ();
2994 	gtk_widget_set_size_request(GTK_WIDGET(entry),-1,32);
2995 	gtk_table_attach(GTK_TABLE(table),entry,1,1+1,0,0+1,
2996                   (GtkAttachOptions)(GTK_FILL | GTK_EXPAND),
2997                   (GtkAttachOptions)(GTK_FILL | GTK_EXPAND),
2998                   3,3);
2999   	gtk_entry_set_text (GTK_ENTRY (entry),povrayDirectory);
3000 	gtk_editable_set_editable((GtkEditable*)entry,FALSE);
3001 	gtk_widget_set_sensitive(entry, FALSE);
3002 	button = create_button_pixmap(Wins,open_xpm,NULL);
3003 	GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
3004 	g_signal_connect_swapped(GTK_OBJECT (button), "clicked",
3005                                      G_CALLBACK(set_entry_povrayDir_selection),
3006                                      GTK_OBJECT(entry));
3007 	add_widget_table(table,button,0,2);
3008   }
3009   gtk_widget_show_all(frame);
3010 }
3011 /********************************************************************************/
create_gauss_directory(GtkWidget * Wins,GtkWidget * vbox,gboolean expand)3012 void  create_gauss_directory(GtkWidget *Wins,GtkWidget *vbox,gboolean expand)
3013 {
3014   GtkWidget *frame;
3015   GtkWidget *button;
3016 
3017   frame = gtk_frame_new (NULL);
3018   gtk_widget_show (frame);
3019   gtk_box_pack_start (GTK_BOX (vbox), frame, expand, expand, 0);
3020   gtk_frame_set_label_align (GTK_FRAME (frame), 0.5, 0.5);
3021 
3022   vbox = gtk_vbox_new (FALSE, 0);
3023   gtk_container_add (GTK_CONTAINER (frame), vbox);
3024 
3025 
3026   {
3027 	GtkWidget* entry;
3028   	GtkWidget *table = gtk_table_new(1,3,FALSE);
3029 
3030 	if(!gaussDirectory) gaussDirectory = g_strdup_printf("%s",g_get_home_dir());
3031 
3032 	gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0);
3033 
3034 	add_label_table(table,_("Gaussian directory                      : "),0,0);
3035   	entry = gtk_entry_new ();
3036 	gtk_widget_set_size_request(GTK_WIDGET(entry),-1,32);
3037 	gtk_table_attach(GTK_TABLE(table),entry,1,1+1,0,0+1,
3038                   (GtkAttachOptions)(GTK_FILL | GTK_EXPAND),
3039                   (GtkAttachOptions)(GTK_FILL | GTK_EXPAND),
3040                   3,3);
3041   	gtk_entry_set_text (GTK_ENTRY (entry),gaussDirectory);
3042 	gtk_editable_set_editable((GtkEditable*)entry,FALSE);
3043 	gtk_widget_set_sensitive(entry, FALSE);
3044 	button = create_button_pixmap(Wins,open_xpm,NULL);
3045 	GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
3046 	g_signal_connect_swapped(GTK_OBJECT (button), "clicked",
3047                                      G_CALLBACK(set_entry_gaussDir_selection),
3048                                      GTK_OBJECT(entry));
3049 	add_widget_table(table,button,0,2);
3050   }
3051   gtk_widget_show_all(frame);
3052 }
3053 #endif
3054 /********************************************************************************/
create_openbabel_directory(GtkWidget * Wins,GtkWidget * vbox,gboolean expand)3055 void  create_openbabel_directory(GtkWidget *Wins,GtkWidget *vbox,gboolean expand)
3056 {
3057   GtkWidget *frame;
3058   GtkWidget *button;
3059 
3060   frame = gtk_frame_new (NULL);
3061   gtk_widget_show (frame);
3062   gtk_box_pack_start (GTK_BOX (vbox), frame, expand, expand, 0);
3063   gtk_frame_set_label_align (GTK_FRAME (frame), 0.5, 0.5);
3064 
3065   vbox = gtk_vbox_new (FALSE, 0);
3066   gtk_container_add (GTK_CONTAINER (frame), vbox);
3067 
3068 
3069   {
3070 	GtkWidget* entry;
3071   	GtkWidget *table = gtk_table_new(1,3,FALSE);
3072 
3073 	if(!openbabelDirectory) openbabelDirectory = g_strdup_printf("%s",g_get_home_dir());
3074 
3075 	gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0);
3076 
3077 	add_label_table(table,_("Open babel directory                         : "),0,0);
3078   	entry = gtk_entry_new ();
3079 	gtk_widget_set_size_request(GTK_WIDGET(entry),-1,32);
3080 	gtk_table_attach(GTK_TABLE(table),entry,1,1+1,0,0+1,
3081                   (GtkAttachOptions)(GTK_FILL | GTK_EXPAND),
3082                   (GtkAttachOptions)(GTK_FILL | GTK_EXPAND),
3083                   3,3);
3084   	gtk_entry_set_text (GTK_ENTRY (entry),openbabelDirectory);
3085 	gtk_editable_set_editable((GtkEditable*)entry,FALSE);
3086 	gtk_widget_set_sensitive(entry, FALSE);
3087 	button = create_button_pixmap(Wins,open_xpm,NULL);
3088 	GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
3089 	g_signal_connect_swapped(GTK_OBJECT (button), "clicked",
3090                                      G_CALLBACK(set_entry_openbabelDir_selection),
3091                                      GTK_OBJECT(entry));
3092 	add_widget_table(table,button,0,2);
3093   }
3094   gtk_widget_show_all(frame);
3095 }
3096 /********************************************************************************/
AddPageColorSurf(GtkWidget * NoteBook)3097 void AddPageColorSurf(GtkWidget *NoteBook)
3098 {
3099   GtkWidget *Frame;
3100   GtkWidget *LabelOnglet;
3101   GtkWidget *LabelMenu;
3102 
3103   Frame= gtk_frame_new(NULL);
3104   gtk_container_set_border_width(GTK_CONTAINER(Frame), 10);
3105   LabelOnglet = gtk_label_new(_(" Surface colors "));
3106   LabelMenu = gtk_label_new(_("   Surface colors  "));
3107   gtk_notebook_append_page_menu(GTK_NOTEBOOK(NoteBook),
3108                                 Frame,
3109                                 LabelOnglet, LabelMenu);
3110   create_color_surfaces(Wins,Frame);
3111   gtk_widget_show(Frame);
3112 }
3113 /********************************************************************************/
set_network(GtkWidget * Button,gpointer data)3114 static void  set_network(GtkWidget *Button, gpointer data)
3115 {
3116 	if(!data)
3117   		defaultNetWorkProtocol = GABEDIT_NETWORK_FTP_RSH;
3118 	else
3119   		defaultNetWorkProtocol = GABEDIT_NETWORK_SSH;
3120 
3121 	set_sensitive_remote_frame(TRUE);
3122 }
3123 /********************************************************************************/
AddPageFont(GtkWidget * NoteBook)3124 void AddPageFont(GtkWidget *NoteBook)
3125 {
3126   GtkWidget *Frame;
3127   GtkWidget *LabelOnglet;
3128   GtkWidget *LabelMenu;
3129 
3130   Frame= gtk_frame_new(NULL);
3131   gtk_container_set_border_width(GTK_CONTAINER(Frame), 10);
3132   LabelOnglet = gtk_label_new(_(" Fonts/Colors "));
3133   LabelMenu = gtk_label_new(_(" Fonts/Colors "));
3134   gtk_notebook_append_page_menu(GTK_NOTEBOOK(NoteBook),
3135                                 Frame,
3136                                 LabelOnglet, LabelMenu);
3137   create_font_color(Wins,Frame);
3138   gtk_widget_show_all(Frame);
3139 }
3140 /********************************************************************************/
AddPageProp(GtkWidget * NoteBook)3141 void AddPageProp(GtkWidget *NoteBook)
3142 {
3143   GtkWidget *Frame;
3144   GtkWidget *LabelOnglet;
3145   GtkWidget *LabelMenu;
3146 
3147   Frame= gtk_frame_new(NULL);
3148   gtk_container_set_border_width(GTK_CONTAINER(Frame), 10);
3149   gtk_widget_set_size_request(GTK_WIDGET(Frame), (gint)(ScreenHeight*0.6),  (gint)(ScreenHeight*0.3));
3150   LabelOnglet = gtk_label_new(_(" Properties of atoms "));
3151   LabelMenu = gtk_label_new(_(" Properties of atoms "));
3152   gtk_notebook_append_page_menu(GTK_NOTEBOOK(NoteBook),
3153                                 Frame,
3154                                 LabelOnglet, LabelMenu);
3155   create_table_prop_in_window(Wins,Frame);
3156   gtk_widget_show_all(Frame);
3157 }
3158 #ifdef G_OS_WIN32
3159 /********************************************************************************/
set_entry_pscpplinkdir(GtkWidget * dirSelector,gint response_id)3160 static void set_entry_pscpplinkdir(GtkWidget* dirSelector, gint response_id)
3161 {
3162 	gchar* dirname = NULL;
3163 	GtkWidget *entry;
3164 	if(response_id != GTK_RESPONSE_OK) return;
3165 	dirname = gabedit_folder_chooser_get_current_folder(GABEDIT_FOLDER_CHOOSER(dirSelector));
3166 
3167 
3168 	entry = (GtkWidget*)(g_object_get_data(G_OBJECT(dirSelector),"EntryFile"));
3169 	gtk_entry_set_text(GTK_ENTRY(entry),dirname);
3170 
3171 	/*if(strcmp(dirname,pscpplinkDirectory)!=0)*/
3172 	{
3173 		gchar* t = g_strdup_printf("%s;%s",dirname,g_getenv("PATH"));
3174 		g_setenv("PATH",t,TRUE);
3175 		g_free(t);
3176 	}
3177 
3178 	if(pscpplinkDirectory) g_free(pscpplinkDirectory);
3179 	pscpplinkDirectory = g_strdup(dirname);
3180 }
3181 /********************************************************************************/
set_entry_pscpplinkDir_selection(GtkWidget * entry)3182 static void set_entry_pscpplinkDir_selection(GtkWidget* entry)
3183 {
3184 	GtkWidget *dirSelector;
3185 	dirSelector = selctionOfDir(set_entry_pscpplinkdir, _("Select pscp & plink folder"), GABEDIT_TYPEWIN_ORB);
3186   	gtk_window_set_modal (GTK_WINDOW (dirSelector), TRUE);
3187   	g_signal_connect(G_OBJECT(dirSelector),"delete_event", (GCallback)gtk_widget_destroy,NULL);
3188 
3189 	g_object_set_data(G_OBJECT (dirSelector), "EntryFile", entry);
3190 
3191 	g_signal_connect (dirSelector, "response",  G_CALLBACK (set_entry_pscpplinkdir), GTK_OBJECT(dirSelector));
3192 	g_signal_connect (dirSelector, "response",  G_CALLBACK (gtk_widget_destroy), GTK_OBJECT(dirSelector));
3193 
3194 	gtk_widget_show(dirSelector);
3195 }
3196 /********************************************************************************/
create_pscpplink_directory(GtkWidget * Wins,GtkWidget * vbox,gboolean expand)3197 void  create_pscpplink_directory(GtkWidget *Wins,GtkWidget *vbox,gboolean expand)
3198 {
3199   GtkWidget *frame;
3200   GtkWidget *button;
3201 
3202   frame = gtk_frame_new (NULL);
3203   gtk_widget_show (frame);
3204   gtk_box_pack_start (GTK_BOX (vbox), frame, expand, expand, 0);
3205   gtk_frame_set_label_align (GTK_FRAME (frame), 0.5, 0.5);
3206 
3207   vbox = gtk_vbox_new (FALSE, 0);
3208   gtk_container_add (GTK_CONTAINER (frame), vbox);
3209 
3210 
3211   {
3212 	GtkWidget* entry;
3213   	GtkWidget *table = gtk_table_new(1,3,FALSE);
3214 
3215 	if(!pscpplinkDirectory) pscpplinkDirectory = g_strdup_printf("%s",g_get_home_dir());
3216 
3217 	gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0);
3218 
3219 	add_label_table(table,_("pscp & plink directory                    : "),0,0);
3220   	entry = gtk_entry_new ();
3221 	gtk_widget_set_size_request(GTK_WIDGET(entry),-1,32);
3222 	gtk_table_attach(GTK_TABLE(table),entry,1,1+1,0,0+1,
3223                   (GtkAttachOptions)(GTK_FILL | GTK_EXPAND),
3224                   (GtkAttachOptions)(GTK_FILL | GTK_EXPAND),
3225                   3,3);
3226   	gtk_entry_set_text (GTK_ENTRY (entry),pscpplinkDirectory);
3227 	gtk_editable_set_editable((GtkEditable*)entry,FALSE);
3228 	gtk_widget_set_sensitive(entry, FALSE);
3229 	button = create_button_pixmap(Wins,open_xpm,NULL);
3230 	GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
3231 	g_signal_connect_swapped(GTK_OBJECT (button), "clicked",
3232                                      G_CALLBACK(set_entry_pscpplinkDir_selection),
3233                                      GTK_OBJECT(entry));
3234 	add_widget_table(table,button,0,2);
3235   }
3236   gtk_widget_show_all(frame);
3237 }
3238 #endif /* and G_OS_WIN32 for pscp and plink */
3239 /********************************************************************************/
create_network_protocols(GtkWidget * Win,GtkWidget * vbox,gboolean expand)3240 void  create_network_protocols(GtkWidget* Win,GtkWidget *vbox,gboolean expand)
3241 {
3242   GtkWidget *frame;
3243   GtkWidget *ButtonFtpRsh;
3244   GtkWidget *ButtonSsh;
3245   GtkWidget *button;
3246   GtkWidget *vboxframe;
3247   GtkWidget *table = gtk_table_new(2,2,TRUE);
3248   gchar ftprsh[] = N_("FTP and Rsh protocols");
3249   gchar ssh[]    = N_("ssh protocol            ");
3250 
3251   frame = gtk_frame_new (_("Default NetWork protocol"));
3252   gtk_widget_show (frame);
3253   gtk_box_pack_start (GTK_BOX (vbox), frame, expand, expand, 0);
3254   gtk_frame_set_label_align (GTK_FRAME (frame), 0.5, 0.5);
3255 
3256   vboxframe = gtk_vbox_new (FALSE, 0);
3257   gtk_widget_show (vboxframe);
3258   gtk_container_add (GTK_CONTAINER (frame), vboxframe);
3259 
3260   gtk_box_pack_start (GTK_BOX (vboxframe), table, expand, expand, 0);
3261 
3262 
3263   ButtonFtpRsh = gtk_radio_button_new_with_label( NULL,ftprsh);
3264   add_widget_table(table,ButtonFtpRsh,0,0);
3265   gtk_widget_show (ButtonFtpRsh);
3266   if(defaultNetWorkProtocol==GABEDIT_NETWORK_FTP_RSH)
3267   	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ButtonFtpRsh), TRUE);
3268   else
3269   	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ButtonFtpRsh), FALSE);
3270 
3271   button = create_button(Win,"  Help  ");
3272   add_widget_table(table,button,0,1);
3273   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(help_ftp_rsh),NULL);
3274 
3275   ButtonSsh = gtk_radio_button_new_with_label(
3276                        gtk_radio_button_get_group (GTK_RADIO_BUTTON (ButtonFtpRsh)),
3277                        ssh);
3278   add_widget_table(table,ButtonSsh,1,0);
3279   gtk_widget_show (ButtonSsh);
3280   if(defaultNetWorkProtocol==GABEDIT_NETWORK_SSH)
3281   	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ButtonSsh), TRUE);
3282   else
3283   	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ButtonSsh), FALSE);
3284 
3285   g_signal_connect(G_OBJECT (ButtonSsh), "clicked", G_CALLBACK(set_network), ButtonSsh);
3286   g_signal_connect(G_OBJECT (ButtonFtpRsh), "clicked", G_CALLBACK(set_network), NULL);
3287   button = create_button(Win,_("  Help  "));
3288   add_widget_table(table,button,1,1);
3289   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(help_ssh),NULL);
3290 
3291 #ifdef G_OS_WIN32
3292 #endif
3293 
3294   gtk_widget_show_all(frame);
3295 }
3296 /********************************************************************************/
AddPageOthers(GtkWidget * NoteBook)3297 void AddPageOthers(GtkWidget *NoteBook)
3298 {
3299   GtkWidget *Frame;
3300   GtkWidget *LabelOnglet;
3301   GtkWidget *LabelMenu;
3302   GtkWidget *vbox;
3303 
3304   Frame= gtk_frame_new(NULL);
3305   gtk_container_set_border_width(GTK_CONTAINER(Frame), 10);
3306   /* gtk_widget_set_size_request(GTK_WIDGET(Frame), (gint)(ScreenHeight*0.6),  (gint)(ScreenHeight*0.3));*/
3307   LabelOnglet = gtk_label_new(_(" Others "));
3308   LabelMenu = gtk_label_new(_(" Others "));
3309   gtk_notebook_append_page_menu(GTK_NOTEBOOK(NoteBook), Frame, LabelOnglet, LabelMenu);
3310   vbox = gtk_vbox_new (FALSE, 0);
3311   gtk_widget_show (vbox);
3312   gtk_container_add (GTK_CONTAINER (Frame), vbox);
3313 
3314 #ifdef G_OS_WIN32
3315   create_demon_directory(Wins,vbox,FALSE);
3316   create_gamess_directory(Wins,vbox,FALSE);
3317   create_orca_directory(Wins,vbox,FALSE);
3318   create_nwchem_directory(Wins,vbox,FALSE);
3319   create_psicode_directory(Wins,vbox,FALSE);
3320   create_firefly_directory(Wins,vbox,FALSE);
3321   create_mopac_directory(Wins,vbox,FALSE);
3322   create_gauss_directory(Wins,vbox,FALSE);
3323   create_povray_directory(Wins,vbox,FALSE);
3324 #endif
3325   create_openbabel_directory(Wins,vbox,FALSE);
3326 
3327   create_opengl_frame(Wins,vbox);
3328   gtk_widget_show_all(Frame);
3329 }
3330 /********************************************************************************/
AddPageCommands(GtkWidget * NoteBook)3331 void AddPageCommands(GtkWidget *NoteBook)
3332 {
3333   GtkWidget *Frame;
3334   GtkWidget *LabelOnglet;
3335   GtkWidget *LabelMenu;
3336   GtkWidget *vbox;
3337 
3338   Frame= gtk_frame_new(NULL);
3339   gtk_container_set_border_width(GTK_CONTAINER(Frame), 10);
3340   /* gtk_widget_set_size_request(GTK_WIDGET(Frame), (gint)(ScreenHeight*0.6),  (gint)(ScreenHeight*0.3));*/
3341   LabelOnglet = gtk_label_new(_(" Commands "));
3342   LabelMenu = gtk_label_new(_(" Commands "));
3343   gtk_notebook_append_page_menu(GTK_NOTEBOOK(NoteBook),
3344                                 Frame,
3345                                 LabelOnglet, LabelMenu);
3346   vbox = gtk_vbox_new (FALSE, 0);
3347   gtk_widget_show (vbox);
3348   gtk_container_add (GTK_CONTAINER (Frame), vbox);
3349 
3350   create_execucte_commands(Wins,vbox,FALSE);
3351   gtk_widget_show_all(Frame);
3352 }
3353 /********************************************************************************/
AddPageBatch(GtkWidget * NoteBook)3354 void AddPageBatch(GtkWidget *NoteBook)
3355 {
3356   GtkWidget *Frame;
3357   GtkWidget *LabelOnglet;
3358   GtkWidget *LabelMenu;
3359   GtkWidget *vbox;
3360 
3361   Frame= gtk_frame_new(NULL);
3362   gtk_container_set_border_width(GTK_CONTAINER(Frame), 10);
3363   /* gtk_widget_set_size_request(GTK_WIDGET(Frame), (gint)(ScreenHeight*0.6),  (gint)(ScreenHeight*0.3));*/
3364   LabelOnglet = gtk_label_new(_(" Batch "));
3365   LabelMenu = gtk_label_new(_(" Batch "));
3366   gtk_notebook_append_page_menu(GTK_NOTEBOOK(NoteBook),
3367                                 Frame,
3368                                 LabelOnglet, LabelMenu);
3369   vbox = gtk_vbox_new (FALSE, 0);
3370   gtk_widget_show (vbox);
3371   gtk_container_add (GTK_CONTAINER (Frame), vbox);
3372 
3373   create_batch_commands(Wins,vbox,FALSE);
3374   gtk_widget_show_all(Frame);
3375 }
3376 /********************************************************************************/
AddPageNetWork(GtkWidget * NoteBook)3377 void AddPageNetWork(GtkWidget *NoteBook)
3378 {
3379   GtkWidget *Frame;
3380   GtkWidget *LabelOnglet;
3381   GtkWidget *LabelMenu;
3382   GtkWidget *vbox;
3383 
3384   Frame= gtk_frame_new(NULL);
3385   gtk_container_set_border_width(GTK_CONTAINER(Frame), 10);
3386   /* gtk_widget_set_size_request(GTK_WIDGET(Frame), (gint)(ScreenHeight*0.6),  (gint)(ScreenHeight*0.3));*/
3387   LabelOnglet = gtk_label_new(_(" NetWork "));
3388   LabelMenu = gtk_label_new(_(" NetWork "));
3389   gtk_notebook_append_page_menu(GTK_NOTEBOOK(NoteBook),
3390                                 Frame,
3391                                 LabelOnglet, LabelMenu);
3392   vbox = gtk_vbox_new (FALSE, 0);
3393   gtk_widget_show (vbox);
3394   gtk_container_add (GTK_CONTAINER (Frame), vbox);
3395 
3396 #ifdef G_OS_WIN32
3397   create_pscpplink_directory(Wins,vbox,FALSE);
3398 #endif
3399   create_network_protocols(Wins,vbox,FALSE);
3400   gtk_widget_show_all(Frame);
3401 }
3402 /********************************************************************************/
create_preferences()3403 void create_preferences()
3404 {
3405   GtkWidget *button;
3406 
3407   if(instal)
3408   	Wins= gtk_dialog_new ();
3409   else
3410   {
3411   	if(!Wins)
3412   		Wins= gtk_dialog_new ();
3413   	else
3414   	{
3415 	  	gtk_widget_hide(Wins);
3416 	 	 gtk_widget_show(Wins);
3417 	  	return;
3418   	}
3419   }
3420   instal = FALSE;
3421   gtk_window_set_position(GTK_WINDOW(Wins),GTK_WIN_POS_CENTER);
3422   gtk_window_set_transient_for(GTK_WINDOW(Wins),GTK_WINDOW(Fenetre));
3423   gtk_window_set_default_size (GTK_WINDOW(Wins), (gushort)(2.9*ScreenWidth/5), (gushort)(2.9*ScreenHeight/5));
3424 /*  gtk_window_set_modal (GTK_WINDOW (Wins), TRUE);*/
3425 
3426   /* Connection des signaux "delete" et "destroy" */
3427   init_child(Wins,gtk_widget_destroy,_("Preferences "));
3428   g_signal_connect(G_OBJECT(Wins),"delete_event",(GCallback)destroy_preferences_window,NULL);
3429 
3430   gtk_window_set_title(&GTK_DIALOG(Wins)->window,_("Preferences"));
3431 
3432   /* NoteBook Options */
3433   NoteBook = gtk_notebook_new();
3434   gtk_box_pack_start(GTK_BOX (GTK_DIALOG(Wins)->vbox), NoteBook,TRUE, TRUE, 0);
3435   AddPageProp(NoteBook);
3436   AddPageFont(NoteBook);
3437   gtk_widget_show(NoteBook);
3438   gtk_widget_show(GTK_WIDGET(GTK_DIALOG(Wins)->vbox));
3439 
3440   AddPageColorSurf(NoteBook);
3441 
3442   AddPageCommands(NoteBook);
3443   AddPageNetWork(NoteBook);
3444   AddPageBatch(NoteBook);
3445 
3446   AddPageOthers(NoteBook);
3447 
3448   gtk_widget_realize(Wins);
3449 
3450   button = create_button(Wins,"Close");
3451   GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
3452   gtk_box_pack_start (GTK_BOX( GTK_DIALOG(Wins)->action_area), button, TRUE, TRUE, 0);
3453   g_signal_connect_swapped(GTK_OBJECT(button), "clicked",(GCallback)destroy_preferences_window,GTK_OBJECT(Wins));
3454   gtk_widget_show_all (button);
3455 
3456   button = create_button(Wins,_("Save&Apply&Close"));
3457   GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
3458   gtk_box_pack_start (GTK_BOX( GTK_DIALOG(Wins)->action_area), button, TRUE, TRUE, 0);
3459   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(apply_all),NULL);
3460   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(create_ressource_file),NULL);
3461   g_signal_connect_swapped(GTK_OBJECT(button), "clicked",(GCallback)destroy_preferences_window,GTK_OBJECT(Wins));
3462   gtk_widget_grab_default(button);
3463   gtk_widget_show_all (button);
3464 
3465   button = create_button(Wins,_("Apply&Close"));
3466   GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
3467   gtk_box_pack_start (GTK_BOX( GTK_DIALOG(Wins)->action_area), button, TRUE, TRUE, 0);
3468   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(apply_all),NULL);
3469   g_signal_connect_swapped(GTK_OBJECT(button), "clicked",(GCallback)destroy_preferences_window,GTK_OBJECT(Wins));
3470   gtk_widget_grab_default(button);
3471   gtk_widget_show_all (button);
3472 
3473   button = create_button(Wins,_("Apply"));
3474   GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
3475   gtk_box_pack_start (GTK_BOX( GTK_DIALOG(Wins)->action_area), button, TRUE, TRUE, 0);
3476   g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(apply_all),NULL);
3477   gtk_widget_grab_default(button);
3478   gtk_widget_show_all (button);
3479 
3480 
3481   gtk_widget_show(Wins);
3482 
3483 }
3484 /********************************************************************************/
setNumberOfSubdivisions(GtkWidget * Entry,gpointer data)3485 static void  setNumberOfSubdivisions(GtkWidget *Entry, gpointer data)
3486 {
3487 	static gchar* typeEntry[] = {"CYLINDER","SPHERE"};
3488 	G_CONST_RETURN gchar* textEntry = gtk_entry_get_text(GTK_ENTRY(Entry));
3489 	gint value = 0;
3490 	if(textEntry && strlen(textEntry)>0) value = atof(textEntry);
3491 	if(value<1)return;
3492 	if(strcmp((gchar*)data,typeEntry[0])==0)
3493 	{
3494 		openGLOptions.numberOfSubdivisionsCylindre = value;
3495 	}
3496 	else
3497 	{
3498 		openGLOptions.numberOfSubdivisionsSphere = value;
3499 	}
3500 }
3501 /********************************************************************************/
set_opengl(GtkWidget * Button,gpointer data)3502 static void  set_opengl(GtkWidget *Button, gpointer data)
3503 {
3504 	gchar* typeButton[] = {"RGBA","DOUBLEBUFFER" ,"ALPHASIZE","DEPTHSIZE","Activate Text"};
3505 	gint i;
3506 	for(i=0;i<5;i++)
3507 		if(strcmp((gchar*)data,typeButton[i])==0)
3508 		{
3509 			switch(i)
3510 			{
3511 				case 0:
3512 					if(openGLOptions.rgba==0)
3513 						openGLOptions.rgba=1;
3514 					else
3515 						openGLOptions.rgba=0;
3516 					break;
3517 				case 1:
3518 					if(openGLOptions.doubleBuffer==0)
3519 						openGLOptions.doubleBuffer = 1;
3520 					else
3521 						openGLOptions.doubleBuffer = 0;
3522 					break;
3523 				case 2:
3524 					if(openGLOptions.alphaSize==0)
3525 						openGLOptions.alphaSize = 1;
3526 					else
3527 						openGLOptions.alphaSize = 0;
3528 					break;
3529 				case 3:
3530 					if(openGLOptions.depthSize==0)
3531 						openGLOptions.depthSize = 1;
3532 					else
3533 						openGLOptions.depthSize = 0;
3534 					break;
3535 				case 4:
3536 					if(openGLOptions.activateText==0)
3537 						openGLOptions.activateText = 1;
3538 					else
3539 						openGLOptions.activateText = 0;
3540 					break;
3541 			}
3542 			break;
3543 		}
3544 }
3545 /********************************************************************************/
create_opengl_frame(GtkWidget * Win,GtkWidget * vbox)3546 void  create_opengl_frame(GtkWidget* Win,GtkWidget *vbox)
3547 {
3548 	GtkWidget *frame;
3549 	GtkWidget *vboxframe;
3550 	GtkWidget* buttonRGBA;
3551 	GtkWidget* buttonALPHASIZE;
3552 	GtkWidget* buttonDEPTHSIZE;
3553 	GtkWidget* buttonDOUBLEBUFFER;
3554 	GtkWidget* buttonActivateText;
3555 	GtkWidget* EntryCylinder;
3556 	GtkWidget* EntrySphere;
3557 	GtkWidget* combo;
3558 	GtkWidget *table = gtk_table_new(2,6,FALSE);
3559 	static gchar* typeButton[] = {"RGBA","DOUBLEBUFFER" ,"ALPHASIZE","DEPTHSIZE","Activate Text"};
3560 	static gchar* values[] = {"5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","40","50","60","80","100"};
3561 	static gchar* typeEntry[] = {"CYLINDER","SPHERE"};
3562 	gushort i;
3563 	gint nv = sizeof(values)/sizeof(gchar*);
3564 
3565 
3566 	frame = gtk_frame_new (_("OpenGL Options"));
3567 	gtk_widget_show (frame);
3568 	gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0);
3569 	gtk_frame_set_label_align (GTK_FRAME (frame), 0.5, 0.5);
3570 
3571 	vboxframe = gtk_vbox_new (FALSE, 0);
3572 	gtk_widget_show (vboxframe);
3573 	gtk_container_add (GTK_CONTAINER (frame), vboxframe);
3574 
3575 	gtk_box_pack_start (GTK_BOX (vboxframe), table, TRUE, TRUE, 0);
3576 
3577 /* ------------------------------------------------------------------*/
3578 	i = 0;
3579 	add_label_table(table,_(" Number Of Subdivisions for a Cylinder "),i,0);
3580 	add_label_table(table," : ",i,1);
3581 	combo = create_combo_box_entry(values,nv,TRUE,-1,-1);
3582 	EntryCylinder = GTK_BIN(combo)->child;
3583 	add_widget_table(table,combo,i,2);
3584 	gtk_editable_set_editable((GtkEditable*)EntryCylinder,FALSE);
3585 	gtk_entry_set_text (GTK_ENTRY (EntryCylinder),g_strdup_printf("%d",openGLOptions.numberOfSubdivisionsCylindre));
3586 	g_signal_connect (G_OBJECT (EntryCylinder), "changed",(GCallback)setNumberOfSubdivisions,typeEntry[0]);
3587 /* ------------------------------------------------------------------*/
3588 	i = 1;
3589 	add_label_table(table,_(" Number Of Subdivisions for a Sphere "),i,0);
3590 	add_label_table(table," : ",i,1);
3591 	combo = create_combo_box_entry(values,nv,TRUE,-1,-1);
3592 	EntrySphere = GTK_BIN(combo)->child;
3593 	add_widget_table(table,combo,i,2);
3594 	gtk_editable_set_editable((GtkEditable*)EntrySphere,FALSE);
3595 	gtk_entry_set_text (GTK_ENTRY (EntrySphere),g_strdup_printf("%d",openGLOptions.numberOfSubdivisionsSphere));
3596 	g_signal_connect (G_OBJECT (EntrySphere), "changed",(GCallback)setNumberOfSubdivisions,typeEntry[1]);
3597 /* ------------------------------------------------------------------*/
3598 
3599 	buttonRGBA = gtk_check_button_new_with_label("RGBA" );
3600 	add_widget_table(table,buttonRGBA,0,3);
3601 	gtk_widget_show (buttonRGBA);
3602 	if(openGLOptions.rgba!=0)
3603   		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (buttonRGBA), TRUE);
3604 	else
3605   		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (buttonRGBA), FALSE);
3606 
3607 	buttonDOUBLEBUFFER = gtk_check_button_new_with_label("DOUBLEBUFFER" );
3608 	add_widget_table(table,buttonDOUBLEBUFFER,1,3);
3609 	gtk_widget_show (buttonDOUBLEBUFFER);
3610 	if(openGLOptions.doubleBuffer!=0)
3611   		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (buttonDOUBLEBUFFER), TRUE);
3612 	else
3613   		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (buttonDOUBLEBUFFER), FALSE);
3614 
3615 	buttonALPHASIZE = gtk_check_button_new_with_label("ALPHASIZE=1(0 if not)" );
3616 	add_widget_table(table,buttonALPHASIZE,0,4);
3617 	gtk_widget_show (buttonALPHASIZE);
3618 	if(openGLOptions.alphaSize!=0)
3619   		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (buttonALPHASIZE), TRUE);
3620 	else
3621   		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (buttonALPHASIZE), FALSE);
3622 
3623 	buttonDEPTHSIZE = gtk_check_button_new_with_label("DEPTHSIZE=1(0 if not)" );
3624 	add_widget_table(table,buttonDEPTHSIZE,1,4);
3625 	gtk_widget_show (buttonDEPTHSIZE);
3626 	if(openGLOptions.depthSize!=0)
3627   		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (buttonDEPTHSIZE), TRUE);
3628 	else
3629   		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (buttonDEPTHSIZE), FALSE);
3630 
3631 	buttonActivateText = gtk_check_button_new_with_label("Activate Text" );
3632 	add_widget_table(table,buttonActivateText,0,5);
3633 	gtk_widget_show (buttonActivateText);
3634 	if(openGLOptions.activateText!=0)
3635   		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (buttonActivateText), TRUE);
3636 	else
3637   		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (buttonActivateText), FALSE);
3638 
3639 	g_signal_connect (G_OBJECT (buttonRGBA), "clicked", G_CALLBACK(set_opengl), typeButton[0]);
3640 	g_signal_connect (G_OBJECT (buttonDOUBLEBUFFER), "clicked", G_CALLBACK(set_opengl), typeButton[1]);
3641 	g_signal_connect (G_OBJECT (buttonALPHASIZE), "clicked", G_CALLBACK(set_opengl), typeButton[2]);
3642 	g_signal_connect (G_OBJECT (buttonDEPTHSIZE), "clicked", G_CALLBACK(set_opengl), typeButton[3]);
3643 	g_signal_connect (G_OBJECT (buttonActivateText), "clicked", G_CALLBACK(set_opengl), typeButton[4]);
3644 	gtk_widget_show_all(frame);
3645 }
3646 /********************************************************************************/
apply_set_opacity(GtkWidget * Win,gpointer data)3647 static void apply_set_opacity(GtkWidget *Win,gpointer data)
3648 {
3649 	GtkWidget* opacitySpinButton = NULL;
3650 	gdouble a = 0;
3651 
3652 	if(!GTK_IS_WIDGET(Win)) return;
3653 
3654 	opacitySpinButton = g_object_get_data (G_OBJECT (Win), "OpacitySpinButton");
3655 
3656 	a = gtk_spin_button_get_value (GTK_SPIN_BUTTON(opacitySpinButton));
3657 	if(a>=0 && a<=100) alpha_opacity = a/100;
3658 	rafresh_window_orb();
3659 }
3660 /********************************************************************************/
apply_set_opacity_close(GtkWidget * Win,gpointer data)3661 static void apply_set_opacity_close(GtkWidget *Win,gpointer data)
3662 {
3663 	apply_set_opacity(Win,data);
3664 	delete_child(Win);
3665 }
3666 /********************************************************************************/
add_spin_button(GtkWidget * table,gchar * strLabel,gint il)3667 static GtkWidget *add_spin_button( GtkWidget *table, gchar* strLabel, gint il)
3668 {
3669 	gushort i;
3670 	gushort j;
3671 	GtkWidget *spinButton;
3672 	GtkWidget *label;
3673 
3674 /*----------------------------------------------------------------------------------*/
3675 	i = il;
3676 	j = 0;
3677 	label = gtk_label_new(strLabel);
3678 	gtk_table_attach(GTK_TABLE(table),label, j,j+1,i,i+1,
3679                   (GtkAttachOptions)(GTK_FILL|GTK_SHRINK) ,
3680                   (GtkAttachOptions)(GTK_FILL|GTK_SHRINK),
3681                   1,1);
3682 /*----------------------------------------------------------------------------------*/
3683 	i = il;
3684 	j = 1;
3685 	label = gtk_label_new(":");
3686 	gtk_table_attach(GTK_TABLE(table),label, j,j+1,i,i+1,
3687                   (GtkAttachOptions)(GTK_FILL|GTK_SHRINK) ,
3688                   (GtkAttachOptions)(GTK_FILL|GTK_SHRINK),
3689                   1,1);
3690 /*----------------------------------------------------------------------------------*/
3691 	i = il;
3692 	j = 2;
3693 	spinButton =  gtk_spin_button_new_with_range (0, 100, 1);
3694 
3695 	gtk_table_attach(GTK_TABLE(table),spinButton,
3696 			j,j+4,i,i+1,
3697                   (GtkAttachOptions)(GTK_FILL|GTK_EXPAND) ,
3698                   (GtkAttachOptions)(GTK_FILL|GTK_SHRINK),
3699                   1,1);
3700 
3701   	return spinButton;
3702 }
3703 /********************************************************************************/
set_opacity_dlg()3704 void set_opacity_dlg()
3705 {
3706 	GtkWidget *Win;
3707 	GtkWidget *frame;
3708 	GtkWidget *vboxframe;
3709 	GtkWidget *hbox;
3710 	GtkWidget *table;
3711 	GtkWidget *vboxall;
3712 	GtkWidget *opacitySpinButton;
3713 	GtkWidget *button;
3714 
3715 	Win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
3716 	gtk_window_set_title(GTK_WINDOW(Win),_("Set opacity"));
3717 	gtk_window_set_position(GTK_WINDOW(Win),GTK_WIN_POS_CENTER);
3718 	gtk_container_set_border_width (GTK_CONTAINER (Win), 5);
3719 	gtk_window_set_modal (GTK_WINDOW (Win), TRUE);
3720 
3721 	add_glarea_child(Win,"Opacity ");
3722 
3723 	vboxall = create_vbox(Win);
3724 	frame = gtk_frame_new (NULL);
3725 	gtk_container_set_border_width (GTK_CONTAINER (frame), 5);
3726 	gtk_container_add (GTK_CONTAINER (vboxall), frame);
3727 	gtk_widget_show (frame);
3728 
3729 	vboxframe = create_vbox(frame);
3730 	table = gtk_table_new(5,3,FALSE);
3731 	gtk_container_add(GTK_CONTAINER(vboxframe),table);
3732 
3733 	opacitySpinButton = add_spin_button( table, _("Opacity coefficient : "), 1);
3734 	gtk_spin_button_set_value(GTK_SPIN_BUTTON(opacitySpinButton),(gint)(alpha_opacity*100));
3735 	g_object_set_data (G_OBJECT (Win), "OpacitySpinButton",opacitySpinButton);
3736 
3737 	hbox = create_hbox_false(vboxall);
3738 	gtk_widget_realize(Win);
3739 
3740 	button = create_button(Win,_("OK"));
3741 	gtk_box_pack_end (GTK_BOX( hbox), button, FALSE, TRUE, 3);
3742 	GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
3743 	gtk_widget_grab_default(button);
3744 	gtk_widget_show (button);
3745 	g_signal_connect_swapped(G_OBJECT(button), "clicked",(GCallback)apply_set_opacity_close,G_OBJECT(Win));
3746 
3747 	button = create_button(Win,_("Apply"));
3748 	gtk_box_pack_end (GTK_BOX( hbox), button, FALSE, TRUE, 3);
3749 	GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
3750 	gtk_widget_show (button);
3751 	g_signal_connect_swapped(G_OBJECT(button), "clicked",(GCallback)apply_set_opacity,G_OBJECT(Win));
3752 
3753 	button = create_button(Win,_("Cancel"));
3754 	GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
3755 	gtk_box_pack_end (GTK_BOX( hbox), button, FALSE, TRUE, 3);
3756 	g_signal_connect_swapped(G_OBJECT(button), "clicked",(GCallback)delete_child, G_OBJECT(Win));
3757 	g_signal_connect_swapped(G_OBJECT(button), "clicked",(GCallback)gtk_widget_destroy,G_OBJECT(Win));
3758 	gtk_widget_show (button);
3759 
3760 	gtk_widget_show_all (Win);
3761 }
3762 /*********************************************************************************************************************/
applyColorMapOptions(GtkWidget * dialogWindow,gpointer data)3763 static void applyColorMapOptions(GtkWidget *dialogWindow, gpointer data)
3764 {
3765 	GtkWidget* buttonMultiColor;
3766 	GtkWidget* button2Colors;
3767 	/* GtkWidget* buttonUniColor;*/
3768 	GtkWidget* selectorUniColor;
3769 	GtkWidget* selector2Colors1;
3770 	GtkWidget* selector2Colors2;
3771 
3772 	if(!GTK_IS_WIDGET(dialogWindow)) return;
3773 	buttonMultiColor = g_object_get_data(G_OBJECT (dialogWindow), "ButtonMultiColor");
3774 	button2Colors = g_object_get_data(G_OBJECT (dialogWindow), "Button2Colors");
3775 	/* buttonUniColor = g_object_get_data(G_OBJECT (dialogWindow), "ButtonUniColor");*/
3776 	selectorUniColor = g_object_get_data(G_OBJECT (dialogWindow), "SelectorUniColor");
3777 	selector2Colors1 = g_object_get_data(G_OBJECT (dialogWindow), "Selector2Colors1");
3778 	selector2Colors2 = g_object_get_data(G_OBJECT (dialogWindow), "Selector2Colors2");
3779 
3780 	if(!buttonMultiColor) return;
3781 	if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(buttonMultiColor)))
3782 	{
3783 
3784 		colorMapType = 1;
3785 	}
3786 	else if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button2Colors)) && selector2Colors1 && selector2Colors2)
3787 	{
3788 		GdkColor color;
3789 		colorMapType = 2;
3790 		gtk_color_button_get_color (GTK_COLOR_BUTTON(selector2Colors1), &color);
3791 		colorMapColors[0][0] = color.red/65535.0;
3792 		colorMapColors[0][1] = color.green/65535.0;
3793 		colorMapColors[0][2] = color.blue/65535.0;
3794 		gtk_color_button_get_color (GTK_COLOR_BUTTON(selector2Colors2), &color);
3795 		colorMapColors[1][0] = color.red/65535.0;
3796 		colorMapColors[1][1] = color.green/65535.0;
3797 		colorMapColors[1][2] = color.blue/65535.0;
3798 
3799 	}
3800 	else if(selectorUniColor)
3801 	{
3802 		GdkColor color;
3803 		colorMapType = 3;
3804 		gtk_color_button_get_color (GTK_COLOR_BUTTON(selectorUniColor), &color);
3805 		colorMapColors[2][0] = color.red/65535.0;
3806 		colorMapColors[2][1] = color.green/65535.0;
3807 		colorMapColors[2][2] = color.blue/65535.0;
3808 	}
3809 	resetAllColorMapOrb();
3810 }
3811 /*********************************************************************************************************************/
addRadioButtonColorMapToATable(GtkWidget * table,GtkWidget * friendButton,gchar * label,gint i,gint j,gint k)3812 static GtkWidget* addRadioButtonColorMapToATable(GtkWidget* table, GtkWidget* friendButton, gchar* label, gint i, gint j, gint k)
3813 {
3814 	GtkWidget *newButton;
3815 
3816 	if(friendButton)
3817 		newButton = gtk_radio_button_new_with_label( gtk_radio_button_get_group (GTK_RADIO_BUTTON (friendButton)), label);
3818 	else
3819 		newButton = gtk_radio_button_new_with_label( NULL, label);
3820 
3821 	gtk_table_attach(GTK_TABLE(table),newButton,j,j+k,i,i+1,
3822 		(GtkAttachOptions)	(GTK_FILL | GTK_EXPAND),
3823 		(GtkAttachOptions)	(GTK_FILL | GTK_EXPAND),
3824                   3,3);
3825 
3826 	g_object_set_data(G_OBJECT (newButton), "Type",NULL);
3827 	return newButton;
3828 }
3829 /*********************************************************************************************************************/
createColorMapOptionsFrame(GtkWidget * dialogWindow,GtkWidget * box)3830 static void createColorMapOptionsFrame(GtkWidget* dialogWindow, GtkWidget *box)
3831 {
3832 	GtkWidget* button;
3833 	GtkWidget* frame;
3834 	GtkWidget* vboxFrame;
3835 	GtkWidget *table = gtk_table_new(3,3,TRUE);
3836 	gint i;
3837 	GtkWidget *selector;
3838 	GdkColor color;
3839 
3840 
3841 	color.red = 65535;
3842 	color.green = 65535;
3843 	color.blue = 65535;
3844 	frame = gtk_frame_new (_("Color mapping type"));
3845 	gtk_widget_show (frame);
3846 	gtk_box_pack_start (GTK_BOX (box), frame, TRUE, TRUE, 3);
3847 	gtk_frame_set_label_align (GTK_FRAME (frame), 0.5, 0.5);
3848 
3849 	vboxFrame = gtk_vbox_new (FALSE, 3);
3850 	gtk_widget_show (vboxFrame);
3851 	gtk_container_add (GTK_CONTAINER (frame), vboxFrame);
3852 
3853 	gtk_box_pack_start (GTK_BOX (vboxFrame), table, TRUE, TRUE, 0);
3854 
3855 	i = 0;
3856 	button =  NULL;
3857 	button = addRadioButtonColorMapToATable(table, button, _("Multi color"), i, 0,1);
3858 	if(colorMapType == 1) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
3859 	g_object_set_data(G_OBJECT (dialogWindow), "ButtonMultiColor",button);
3860 
3861 	i = 1;
3862 	button = addRadioButtonColorMapToATable(table, button, _("2 colors"), i, 0,1);
3863 	if(colorMapType == 2) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
3864 	g_object_set_data(G_OBJECT (dialogWindow), "Button2Colors",button);
3865 
3866 	color.red = (gushort)(colorMapColors[0][0]*65535);
3867 	color.green = (gushort)(colorMapColors[0][1]*65535);
3868 	color.blue = (gushort)(colorMapColors[0][2]*65535);
3869 	selector = gtk_color_button_new_with_color (&color);
3870 	gtk_table_attach(GTK_TABLE(table),selector,1,2,i,i+1,
3871 		(GtkAttachOptions)	(GTK_FILL | GTK_EXPAND),
3872 		(GtkAttachOptions)	(GTK_FILL | GTK_EXPAND),
3873                   3,3);
3874 	g_object_set_data(G_OBJECT (dialogWindow), "Selector2Colors1",selector);
3875 
3876 	color.red = (gushort)(colorMapColors[1][0]*65535);
3877 	color.green = (gushort)(colorMapColors[1][1]*65535);
3878 	color.blue = (gushort)(colorMapColors[1][2]*65535);
3879 	selector = gtk_color_button_new_with_color (&color);
3880 	gtk_table_attach(GTK_TABLE(table),selector,2,3,i,i+1,
3881 		(GtkAttachOptions)	(GTK_FILL | GTK_EXPAND),
3882 		(GtkAttachOptions)	(GTK_FILL | GTK_EXPAND),
3883                   3,3);
3884 	g_object_set_data(G_OBJECT (dialogWindow), "Selector2Colors2",selector);
3885 
3886 	i = 2;
3887 	button = addRadioButtonColorMapToATable(table, button, _("Unicolor"), i, 0,1);
3888 	if(colorMapType == 3) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
3889 
3890 	color.red = (gushort)(colorMapColors[2][0]*65535);
3891 	color.green = (gushort)(colorMapColors[2][1]*65535);
3892 	color.blue = (gushort)(colorMapColors[2][2]*65535);
3893 	selector = gtk_color_button_new_with_color (&color);
3894 	gtk_table_attach(GTK_TABLE(table),selector,1,2,i,i+1,
3895 		(GtkAttachOptions)	(GTK_FILL | GTK_EXPAND),
3896 		(GtkAttachOptions)	(GTK_FILL | GTK_EXPAND),
3897                   3,3);
3898 	g_object_set_data(G_OBJECT (dialogWindow), "SelectorUniColor",selector);
3899 	g_object_set_data(G_OBJECT (dialogWindow), "ButtonUniColor",button);
3900 
3901 }
3902 /****************************************************************************************************/
createColorMapOptionsWindow(GtkWidget * win)3903 void createColorMapOptionsWindow(GtkWidget* win)
3904 {
3905 	GtkWidget *dialogWindow = NULL;
3906 	GtkWidget *button;
3907 	GtkWidget *frame;
3908 	GtkWidget *hbox;
3909 	gchar title[BSIZE];
3910 
3911 	dialogWindow = gtk_dialog_new();
3912 	gtk_widget_realize(GTK_WIDGET(dialogWindow));
3913 	sprintf(title, _("Color Mapping options"));
3914 	gtk_window_set_title(GTK_WINDOW(dialogWindow),title);
3915 
3916 	gtk_window_set_modal (GTK_WINDOW (dialogWindow), TRUE);
3917 	gtk_window_set_position(GTK_WINDOW(dialogWindow),GTK_WIN_POS_CENTER);
3918 
3919 	g_signal_connect(G_OBJECT(dialogWindow), "delete_event", (GCallback)destroy_button_windows, NULL);
3920 	g_signal_connect(G_OBJECT(dialogWindow), "delete_event", (GCallback)gtk_widget_destroy, NULL);
3921 
3922 	frame = gtk_frame_new (NULL);
3923 	gtk_widget_show (frame);
3924 	gtk_box_pack_start (GTK_BOX (GTK_WIDGET(GTK_DIALOG(dialogWindow)->vbox)), frame, TRUE, TRUE, 3);
3925 
3926 	hbox = gtk_hbox_new (FALSE, 3);
3927 	gtk_widget_show (hbox);
3928 	gtk_container_add (GTK_CONTAINER (frame), hbox);
3929 
3930 	createColorMapOptionsFrame(dialogWindow,hbox);
3931 	gtk_box_set_homogeneous (GTK_BOX( GTK_DIALOG(dialogWindow)->action_area), TRUE);
3932 
3933 	button = create_button(dialogWindow,_("Close"));
3934 	gtk_box_pack_start (GTK_BOX( GTK_DIALOG(dialogWindow)->action_area), button, FALSE, TRUE, 5);
3935 	GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
3936 	g_signal_connect_swapped(G_OBJECT(button), "clicked", (GCallback)destroy_button_windows, GTK_OBJECT(dialogWindow));
3937 	g_signal_connect_swapped(G_OBJECT(button), "clicked", (GCallback)gtk_widget_destroy, GTK_OBJECT(dialogWindow));
3938 
3939 	button = create_button(dialogWindow,_("Apply"));
3940 	gtk_box_pack_start (GTK_BOX( GTK_DIALOG(dialogWindow)->action_area), button, FALSE, TRUE, 5);
3941 	GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
3942 	g_signal_connect_swapped(G_OBJECT(button), "clicked", (GCallback)applyColorMapOptions, GTK_OBJECT(dialogWindow));
3943 
3944 	button = create_button(dialogWindow,_("OK"));
3945 	gtk_box_pack_start (GTK_BOX( GTK_DIALOG(dialogWindow)->action_area), button, FALSE, TRUE, 5);
3946 	GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
3947 	gtk_widget_grab_default(button);
3948 	g_signal_connect_swapped(G_OBJECT(button), "clicked", (GCallback)applyColorMapOptions, GTK_OBJECT(dialogWindow));
3949 	g_signal_connect_swapped(G_OBJECT(button), "clicked", (GCallback)destroy_button_windows, GTK_OBJECT(dialogWindow));
3950 	g_signal_connect_swapped(G_OBJECT(button), "clicked", (GCallback)gtk_widget_destroy, GTK_OBJECT(dialogWindow));
3951 
3952 
3953 	add_button_windows(title,dialogWindow);
3954 
3955 	gtk_widget_show_all(dialogWindow);
3956 	if(GTK_IS_WIDGET(win)) gtk_window_set_transient_for(GTK_WINDOW(dialogWindow),GTK_WINDOW(win));
3957 }
3958