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(>K_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