1 /* GInterfaceRoute.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 <stdio.h>
23 #include <stdlib.h>
24 #include <string.h>
25
26 #include "../Common/Global.h"
27 #include "../Utils/Utils.h"
28 #include "../Utils/UtilsInterface.h"
29 #include "../Utils/GabeditTextEdit.h"
30 #include "../Geometry/GeomGlobal.h"
31 #include "../Geometry/GeomXYZ.h"
32 #include "../Geometry/InterfaceGeom.h"
33 #include "GInterfaceLink.h"
34 #include "GInterfaceMethodeBase.h"
35 #include "GaussGlobal.h"
36 #include "GInterfaceGeom.h"
37 static GtkWidget *EntryChargeSpin[6];
38
39 /*******************************************************************/
GetChargesAndMultiplicitiesFromMain()40 void GetChargesAndMultiplicitiesFromMain( )
41 {
42 G_CONST_RETURN gchar *entrytext;
43
44 if(EntryChargeSpin[0]!=NULL)
45 {
46 entrytext = gtk_entry_get_text(GTK_ENTRY(EntryChargeSpin[0]));
47 gabedit_text_insert (GABEDIT_TEXT(text), NULL, NULL, NULL,entrytext,-1);
48 gabedit_text_insert (GABEDIT_TEXT(text), NULL, NULL, NULL," \t",-1);
49
50 entrytext = gtk_entry_get_text(GTK_ENTRY(EntryChargeSpin[1]));
51 gabedit_text_insert (GABEDIT_TEXT(text), NULL, NULL, NULL,entrytext,-1);
52 gabedit_text_insert (GABEDIT_TEXT(text), NULL, NULL, NULL," \t",-1);
53 }
54 if(EntryChargeSpin[2]!=NULL)
55 {
56 entrytext = gtk_entry_get_text(GTK_ENTRY(EntryChargeSpin[2]));
57 gabedit_text_insert (GABEDIT_TEXT(text), NULL, NULL, NULL,entrytext,-1);
58 gabedit_text_insert (GABEDIT_TEXT(text), NULL, NULL, NULL," \t",-1);
59
60 entrytext = gtk_entry_get_text(GTK_ENTRY(EntryChargeSpin[3]));
61 gabedit_text_insert (GABEDIT_TEXT(text), NULL, NULL, NULL,entrytext,-1);
62 gabedit_text_insert (GABEDIT_TEXT(text), NULL, NULL, NULL," \t",-1);
63
64 entrytext = gtk_entry_get_text(GTK_ENTRY(EntryChargeSpin[2]));
65 gabedit_text_insert (GABEDIT_TEXT(text), NULL, NULL, NULL,entrytext,-1);
66 gabedit_text_insert (GABEDIT_TEXT(text), NULL, NULL, NULL," \t",-1);
67
68 entrytext = gtk_entry_get_text(GTK_ENTRY(EntryChargeSpin[3]));
69 gabedit_text_insert (GABEDIT_TEXT(text), NULL, NULL, NULL,entrytext,-1);
70 gabedit_text_insert (GABEDIT_TEXT(text), NULL, NULL, NULL," \t",-1);
71 }
72 if(EntryChargeSpin[4]!=NULL)
73 {
74 entrytext = gtk_entry_get_text(GTK_ENTRY(EntryChargeSpin[4]));
75 gabedit_text_insert (GABEDIT_TEXT(text), NULL, NULL, NULL,entrytext,-1);
76 gabedit_text_insert (GABEDIT_TEXT(text), NULL, NULL, NULL," \t",-1);
77
78 entrytext = gtk_entry_get_text(GTK_ENTRY(EntryChargeSpin[5]));
79 gabedit_text_insert (GABEDIT_TEXT(text), NULL, NULL, NULL,entrytext,-1);
80 gabedit_text_insert (GABEDIT_TEXT(text), NULL, NULL, NULL," \t",-1);
81
82 entrytext = gtk_entry_get_text(GTK_ENTRY(EntryChargeSpin[4]));
83 gabedit_text_insert (GABEDIT_TEXT(text), NULL, NULL, NULL,entrytext,-1);
84 gabedit_text_insert (GABEDIT_TEXT(text), NULL, NULL, NULL," \t",-1);
85
86 entrytext = gtk_entry_get_text(GTK_ENTRY(EntryChargeSpin[5]));
87 gabedit_text_insert (GABEDIT_TEXT(text), NULL, NULL, NULL,entrytext,-1);
88 gabedit_text_insert (GABEDIT_TEXT(text), NULL, NULL, NULL," \t",-1);
89
90 entrytext = gtk_entry_get_text(GTK_ENTRY(EntryChargeSpin[4]));
91 gabedit_text_insert (GABEDIT_TEXT(text), NULL, NULL, NULL,entrytext,-1);
92 gabedit_text_insert (GABEDIT_TEXT(text), NULL, NULL, NULL," \t",-1);
93
94 entrytext = gtk_entry_get_text(GTK_ENTRY(EntryChargeSpin[5]));
95 gabedit_text_insert (GABEDIT_TEXT(text), NULL, NULL, NULL,entrytext,-1);
96 gabedit_text_insert (GABEDIT_TEXT(text), NULL, NULL, NULL," \t",-1);
97 }
98
99 gabedit_text_insert (GABEDIT_TEXT(text), NULL, NULL, NULL,"\n",-1);
100 }
101 /************************************************************************************************************/
get_number_of_model_connections()102 static gint get_number_of_model_connections()
103 {
104 gint i;
105 gint j;
106 gint nc = 0;
107 gint NC = NcentersXYZ;
108 if(MethodeGeom == GEOM_IS_ZMAT) NC = NcentersZmat;
109 for(i=0;i<NC;i++)
110 {
111 if( MethodeGeom == GEOM_IS_XYZ)
112 if(strstr(GeomXYZ[i].Layer,"Me") || strstr(GeomXYZ[i].Layer,"Lo")) continue;
113 if( MethodeGeom == GEOM_IS_ZMAT)
114 if(strstr(Geom[i].Layer,"Me") || strstr(Geom[i].Layer,"Lo")) continue;
115 for(j=0;j<NC;j++)
116 {
117 if(i==j) continue;
118 if( MethodeGeom == GEOM_IS_XYZ)
119 if(!strstr(GeomXYZ[j].Layer,"Me") && !strstr(GeomXYZ[j].Layer,"Lo")) continue;
120 if( MethodeGeom == GEOM_IS_ZMAT)
121 if(!strstr(Geom[j].Layer,"Me") && !strstr(Geom[j].Layer,"Lo")) continue;
122 if(connecteds(i,j)) nc++;
123 }
124 }
125 return nc;
126 }
127 /************************************************************************************************************/
get_number_of_inter_connections()128 static gint get_number_of_inter_connections()
129 {
130 gint i;
131 gint j;
132 gint nc = 0;
133 gint NC = NcentersXYZ;
134 if(MethodeGeom == GEOM_IS_ZMAT) NC = NcentersZmat;
135 for(i=0;i<NC;i++)
136 {
137
138 if( MethodeGeom == GEOM_IS_XYZ)
139 if(strstr(GeomXYZ[i].Layer," ") || strstr(GeomXYZ[i].Layer,"Lo") || strstr(GeomXYZ[i].Layer,"Hi")) continue;
140 if( MethodeGeom == GEOM_IS_ZMAT)
141 if(strstr(Geom[i].Layer," ") || strstr(Geom[i].Layer,"Lo") || strstr(Geom[i].Layer,"Hi")) continue;
142
143 for(j=0;j<NC;j++)
144 {
145 if(i==j) continue;
146 if( MethodeGeom == GEOM_IS_XYZ)
147 if(!strstr(GeomXYZ[j].Layer," ") && !strstr(GeomXYZ[j].Layer,"Lo") && !strstr(GeomXYZ[j].Layer,"Hi")) continue;
148 if( MethodeGeom == GEOM_IS_ZMAT)
149 if(!strstr(Geom[j].Layer," ") && !strstr(Geom[j].Layer,"Lo") && !strstr(Geom[j].Layer,"Hi")) continue;
150 if(connecteds(i,j)) nc++;
151 }
152 }
153 return nc;
154 }
155 /************************************************************************************************************/
set_spin_of_electrons_for_main()156 static void set_spin_of_electrons_for_main()
157 {
158 gint i;
159 guint NumberElectrons[3];
160 guint SpinElectrons[3];
161 gchar* chaine;
162
163 if(EntryChargeSpin[0] == NULL ) return;
164 NumberElectrons[2]= get_number_electrons(2);
165 NumberElectrons[1]= get_number_electrons(1);
166 NumberElectrons[0]= get_number_electrons(0);
167
168 for(i=0;i<3;i++)
169 SpinElectrons[i]=0;
170 if(NMethodes==3)
171 {
172 NumberElectrons[2] += get_number_of_model_connections();
173 NumberElectrons[1] += get_number_of_inter_connections();
174 }
175 if(NMethodes==2)
176 {
177 NumberElectrons[1] += get_number_of_model_connections();
178 }
179
180 for(i=0;(guint)i<NMethodes;i++)
181 if((NumberElectrons[i]-TotalCharges[i])%2==0)
182 SpinElectrons[i]=1;
183 else
184 SpinElectrons[i]=2;
185
186 for(i=0;(guint)i<NMethodes;i++)
187 {
188 if(SpinMultiplicities[i]%2 != SpinElectrons[i]%2)
189 SpinMultiplicities[i] = SpinElectrons[i];
190 chaine = g_strdup_printf("%d",SpinMultiplicities[i]);
191 if(EntryChargeSpin[2*i+1] && GTK_IS_ENTRY(EntryChargeSpin[2*i+1]))
192 {
193 gtk_entry_set_text(GTK_ENTRY(EntryChargeSpin[2*i+1]),chaine);
194 }
195 }
196 }
197 /************************************************************************************************************/
change_of_charge(GtkWidget * entry,gpointer d)198 static void change_of_charge(GtkWidget *entry,gpointer d)
199 {
200 G_CONST_RETURN gchar *entry_text;
201 gint *Number;
202
203 Number = (gint*)d;
204 entry_text = gtk_entry_get_text(GTK_ENTRY(entry));
205 TotalCharges[*Number] = atoi(entry_text);
206 set_spin_of_electrons_for_main();
207
208 }
209 /************************************************************************************************************/
create_combo_charge(GtkWidget * hbox,gint Num,gchar * tlabel)210 static void create_combo_charge(GtkWidget *hbox,gint Num,gchar *tlabel)
211 {
212 gchar *tlist[]={"0","1","-1","2","-2","3","-3","4","-4"};
213 gchar* t = NULL;
214 gint *Number;
215 Number = g_malloc(sizeof(gint));
216 *Number = Num/2;
217 EntryChargeSpin[Num] = create_label_combo(hbox,tlabel,tlist,9,TRUE,-1,(gint)(ScreenHeight*0.1));
218 g_signal_connect(G_OBJECT(EntryChargeSpin[Num]), "changed", G_CALLBACK(change_of_charge), Number);
219 t = g_strdup_printf("%d",TotalCharges[*Number]);
220 gtk_entry_set_text(GTK_ENTRY(EntryChargeSpin[Num]),t);
221 g_free(t);
222 /* TotalCharges[*Number] = 0;*/
223 }
224 /************************************************************************************************************/
create_combo_spin(GtkWidget * hbox,gint Num,gchar * tlabel)225 static void create_combo_spin(GtkWidget *hbox,gint Num,gchar *tlabel)
226 {
227 gchar *tlist[]={"1","2","3","4","5","6","7","8","9"};
228 EntryChargeSpin[Num] = create_label_combo(hbox,tlabel,tlist,9,TRUE,-1,(gint)(ScreenHeight*0.1));
229 }
230 /************************************************************************************************************/
addChargeSpinFrame(GtkWidget * vboxmain)231 static void addChargeSpinFrame(GtkWidget *vboxmain)
232 {
233 GtkWidget *window1;
234 GtkWidget *Frame;
235 GtkWidget *vbox;
236 GtkWidget *hbox;
237 GtkWidget *hbox2;
238 gint i;
239 gboolean medium = geometry_with_medium_layer();
240 gboolean lower = geometry_with_lower_layer();
241
242 for(i=0;i<6;i++)
243 EntryChargeSpin[i] = NULL;
244
245 Frame = gtk_frame_new(_("Molecular Specifications"));
246 gtk_container_set_border_width(GTK_CONTAINER(Frame), 5);
247
248 gtk_container_add (GTK_CONTAINER (vboxmain), Frame);
249
250 window1 = Frame;
251 g_object_set_data(G_OBJECT (window1), "window1", window1);
252
253 vbox =create_vbox(window1);
254
255 hbox =create_hbox_false(vbox);
256 hbox2 =create_hbox_false(vbox);
257 NMethodes = 0;
258
259 if(medium || lower )
260 {
261 create_label_hbox(hbox, _("Charge of "),100);
262 create_combo_charge(hbox,0,_("Real system : "));
263 create_label_hbox(hbox2,_("2*Spin+1 of "),100);
264 create_combo_spin(hbox2,1,_("Real system : "));
265 NMethodes++;
266 }
267 else
268 {
269 create_label_hbox(hbox,_("Charge of "),-1);
270 create_combo_charge(hbox,0,_("system : "));
271 create_label_hbox(hbox,_("2*Spin+1 of "),-1);
272 create_combo_spin(hbox,1,_("system : "));
273 NMethodes++;
274 }
275 if(medium && lower )
276 {
277 create_combo_charge(hbox,2,_("Intermediate system : "));
278 create_combo_spin(hbox2,3,_("Intermediate system : "));
279 NMethodes++;
280 create_combo_charge(hbox,4,_("Model system : "));
281 create_combo_spin(hbox2,5,_("Model system : "));
282 NMethodes++;
283 }
284 else
285 if(medium || lower )
286 {
287 create_combo_charge(hbox,2,_("Model system : "));
288 create_combo_spin(hbox2,3,_("Model system : "));
289 NMethodes++;
290 }
291
292 set_spin_of_electrons_for_main();
293 }
294
295 /*****************************************************************************************/
polar_activate(GtkWidget * button,gpointer data)296 static void polar_activate(GtkWidget *button,gpointer data)
297 {
298 GtkWidget* buttonOptions =(GtkWidget*)data;
299 if (GTK_TOGGLE_BUTTON (button)->active)
300 {
301 if(Tpolar == NULL ) Tpolar=g_malloc(50*sizeof(gchar));
302 sprintf(Tpolar," polar");
303 if(GTK_IS_WIDGET(buttonOptions)) gtk_widget_set_sensitive(buttonOptions,TRUE);
304 }
305 else
306 {
307 if(Tpolar) g_free(Tpolar);
308 Tpolar = NULL;
309 if(GTK_IS_WIDGET(buttonOptions)) gtk_widget_set_sensitive(buttonOptions,FALSE);
310 }
311 }
312 /*****************************************************************************************/
gene_polar(GtkWidget * b,gpointer data)313 static void gene_polar(GtkWidget *b,gpointer data)
314 {
315 GtkWidget **entryall;
316 GtkWidget *entry;
317 G_CONST_RETURN gchar *entrytext;
318 guint ipar;
319 ipar=0;
320 if(Tpolar == NULL ) Tpolar=g_malloc(50*sizeof(gchar));
321 sprintf(Tpolar," polar");
322 entryall=(GtkWidget **)data;
323 entry=entryall[0];
324 entrytext = gtk_entry_get_text(GTK_ENTRY(entry));
325 if (strcmp(entrytext,_("default")) )
326 {
327 ipar=1;
328 sprintf(Tpolar+strlen(Tpolar),"(%s",entrytext);
329 }
330 entry=entryall[1];
331 entrytext = gtk_entry_get_text(GTK_ENTRY(entry));
332 if (strcmp(entrytext,_("default")) )
333 {
334 if(ipar)
335 sprintf(Tpolar+strlen(Tpolar),",Step=%s",entrytext);
336 else
337 {
338 ipar=1;
339 sprintf(Tpolar+strlen(Tpolar),"(Step=%s",entrytext);
340 }
341 }
342 if(ipar)
343 strcat(Tpolar,") ");
344 }
345 /*****************************************************************************************/
create_polar_option(GtkWidget * Wins)346 static void create_polar_option (GtkWidget* Wins)
347 {
348 GtkWidget *fp;
349 GtkWidget *frame;
350 GtkWidget **entry;
351 GtkWidget *vboxall;
352 GtkWidget *vboxframe;
353 GtkWidget *hbox1;
354 GtkWidget *hbox2;
355 GtkWidget *button;
356 int nlist = 1;
357 gchar *list[4];
358 entry=g_malloc(2*sizeof(GtkWidget*));
359
360 fp = gtk_window_new(GTK_WINDOW_TOPLEVEL);
361 gtk_window_set_modal(GTK_WINDOW(fp),TRUE);
362 gtk_window_set_position(GTK_WINDOW(fp),GTK_WIN_POS_CENTER);
363 gtk_window_set_title(GTK_WINDOW(fp),_("Options for dipole polarizabilities"));
364 gtk_container_set_border_width (GTK_CONTAINER (fp), 5);
365 gtk_window_set_transient_for(GTK_WINDOW(fp),GTK_WINDOW(Wins));
366 gtk_window_set_modal (GTK_WINDOW (fp), TRUE);
367
368 add_child(Wins,fp,gtk_widget_destroy,_(" Dipole polar. "));
369 g_signal_connect(G_OBJECT(fp),"delete_event",(GCallback)delete_child,NULL);
370
371 vboxall = create_vbox(fp);
372 frame = gtk_frame_new (_("Dipole polarizabilities"));
373 gtk_container_set_border_width (GTK_CONTAINER (frame), 5);
374 gtk_container_add (GTK_CONTAINER (vboxall), frame);
375 gtk_widget_show (frame);
376
377 vboxframe = create_vbox(frame);
378 nlist=4;
379 list[0]=g_strdup(_("default"));
380 list[1]=g_strdup("Analytic");
381 list[2]=g_strdup("Numerical");
382 list[3]=g_strdup("EnOnly");
383 hbox1 = create_hbox(vboxframe);
384 entry[0]= create_combo_box_entry_liste(fp,hbox1,_("Type of second derivatives : "),list,nlist);
385 nlist=4;
386 list[0]=g_strdup(_("default"));
387 list[1]=g_strdup("1");
388 list[2]=g_strdup("10");
389 list[3]=g_strdup("100");
390 hbox1 = create_hbox(vboxframe);
391 entry[1]= create_combo_box_entry_liste(fp,hbox1,_("Step size in the electric field :"),list,nlist);
392
393 hbox2 = create_hbox(vboxall);
394 gtk_widget_realize(fp);
395
396 button = create_button(fp,_("Cancel"));
397 gtk_box_pack_start (GTK_BOX( hbox2), button, TRUE, TRUE, 3);
398 g_signal_connect_swapped(G_OBJECT(button), "clicked",G_CALLBACK(delete_child),GTK_OBJECT(fp));
399 gtk_widget_show (button);
400
401 button = create_button(fp,_("OK"));
402 gtk_box_pack_start (GTK_BOX( hbox2), button, TRUE, TRUE, 3);
403 gtk_widget_show (button);
404 g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(gene_polar),(gpointer)entry);
405 g_signal_connect_swapped(G_OBJECT(button), "clicked",G_CALLBACK(delete_child),GTK_OBJECT(fp));
406
407
408 gtk_widget_show_all(fp);
409 }
410 /*****************************************************************************************/
gene_scf(GtkWidget * b,gpointer data)411 static void gene_scf(GtkWidget *b,gpointer data)
412 {
413 GtkWidget **entryall;
414 GtkWidget *entry;
415 G_CONST_RETURN gchar *entrytext;
416 guint ipar;
417 ipar=0;
418 if(Tscf == NULL ) Tscf=g_malloc(50*sizeof(gchar));
419 sprintf(Tscf," SCF");
420 entryall=(GtkWidget **)data;
421 entry=entryall[0];
422 entrytext = gtk_entry_get_text(GTK_ENTRY(entry));
423 if (strcmp(entrytext,_("default")) )
424 {
425 ipar=1;
426 sprintf(Tscf+strlen(Tscf),"(%s",entrytext);
427 }
428 entry=entryall[1];
429 entrytext = gtk_entry_get_text(GTK_ENTRY(entry));
430 if (strcmp(entrytext,_("default")) )
431 {
432 if(ipar)
433 sprintf(Tscf+strlen(Tscf),",Vshift=%s",entrytext);
434 else
435 {
436 ipar=1;
437 sprintf(Tscf+strlen(Tscf),"(Vshift=%s",entrytext);
438 }
439 }
440 entry=entryall[2];
441 entrytext = gtk_entry_get_text(GTK_ENTRY(entry));
442 if (strcmp(entrytext,_("default")) )
443 {
444 if(ipar)
445 sprintf(Tscf+strlen(Tscf),",MaxCycle=%s",entrytext);
446 else
447 {
448 ipar=1;
449 sprintf(Tscf+strlen(Tscf),"(MaxCycle=%s",entrytext);
450 }
451 }
452 entry=entryall[3];
453 entrytext = gtk_entry_get_text(GTK_ENTRY(entry));
454 if (strcmp(entrytext,_("default")) )
455 {
456 if(ipar)
457 sprintf(Tscf+strlen(Tscf),",MaxRot=%s",entrytext);
458 else
459 {
460 ipar=1;
461 sprintf(Tscf+strlen(Tscf),"(MaxRot=%s",entrytext);
462 }
463 }
464 entry=entryall[4];
465 entrytext = gtk_entry_get_text(GTK_ENTRY(entry));
466 if (strcmp(entrytext,_("default")) )
467 {
468 if(ipar)
469 sprintf(Tscf+strlen(Tscf),",Conver=%s",entrytext);
470 else
471 {
472 ipar=1;
473 sprintf(Tscf+strlen(Tscf),"(Conver=%s",entrytext);
474 }
475 }
476 if(ipar)
477 strcat(Tscf,") ");
478 else
479 {
480 g_free(Tscf);
481 Tscf = (char *)NULL;
482 }
483 }
484 /*****************************************************************************************/
create_scf_option(GtkWidget * Wins)485 static void create_scf_option (GtkWidget* Wins)
486 {
487 GtkWidget *fp;
488 GtkWidget *frame;
489 GtkWidget **entry;
490 GtkWidget *vboxall;
491 GtkWidget *vboxframe;
492 GtkWidget *hbox1;
493 GtkWidget *hbox2;
494 GtkWidget *button;
495 int nlist = 1;
496 gchar *list[10];
497 entry=g_malloc(5*sizeof(GtkWidget*));
498
499 fp = gtk_window_new(GTK_WINDOW_TOPLEVEL);
500 gtk_window_set_modal(GTK_WINDOW(fp),TRUE);
501 gtk_window_set_position(GTK_WINDOW(fp),GTK_WIN_POS_CENTER);
502 gtk_window_set_title(GTK_WINDOW(fp),_("Controls of the SCF procedure"));
503 gtk_container_set_border_width (GTK_CONTAINER (fp), 5);
504 gtk_window_set_transient_for(GTK_WINDOW(fp),GTK_WINDOW(Wins));
505 gtk_window_set_modal (GTK_WINDOW (fp), TRUE);
506
507 add_child(Wins,fp,gtk_widget_destroy,_(" Dipole polar. "));
508 g_signal_connect(G_OBJECT(fp),"delete_event",(GCallback)delete_child,NULL);
509
510 vboxall = create_vbox(fp);
511 frame = gtk_frame_new (_("SCF procedure"));
512 gtk_container_set_border_width (GTK_CONTAINER (frame), 5);
513 gtk_container_add (GTK_CONTAINER (vboxall), frame);
514 gtk_widget_show (frame);
515
516 vboxframe = create_vbox(frame);
517 hbox1 = create_hbox(vboxframe);
518 list[0]=g_strdup("");
519 nlist=9;
520 list[0]=g_strdup(_("default"));
521 list[1]=g_strdup("Direct");
522 list[2]=g_strdup("InCore");
523 list[3]=g_strdup("QC");
524 list[4]=g_strdup("DIIS");
525 list[5]=g_strdup("SD");
526 list[6]=g_strdup("SSD");
527 list[7]=g_strdup("DM");
528 list[8]=g_strdup("Conventional");
529 entry[0]= create_combo_box_entry_liste(fp,hbox1,_("Algorithm : "),list,nlist);
530 nlist=3;
531 list[0]=g_strdup(_("default"));
532 list[1]=g_strdup("100");
533 list[2]=g_strdup("200");
534 hbox1 = create_hbox(vboxframe);
535 entry[1]= create_combo_box_entry_liste(fp,hbox1,_("Shift orbital energies : "),list,nlist);
536 nlist=3;
537 list[0]=g_strdup(_("default"));
538 list[1]=g_strdup("64");
539 list[2]=g_strdup("512");
540 hbox1 = create_hbox(vboxframe);
541 entry[2]= create_combo_box_entry_liste(fp,hbox1,_("Maximum number of SCF cycles : "),list,nlist);
542 nlist=4;
543 list[0]=g_strdup(_("default"));
544 list[1]=g_strdup("2");
545 list[2]=g_strdup("3");
546 list[3]=g_strdup("4");
547 hbox1 = create_hbox(vboxframe);
548 entry[3]= create_combo_box_entry_liste(fp,hbox1,_("Maximum rotation gradient :"),list,nlist);
549 nlist=5;
550 list[0]=g_strdup(_("default"));
551 list[1]=g_strdup("6");
552 list[2]=g_strdup("7");
553 list[3]=g_strdup("8");
554 list[4]=g_strdup("9");
555 hbox1 = create_hbox(vboxframe);
556 entry[4]= create_combo_box_entry_liste(fp,hbox1,_("Convergence criterion :"),list,nlist);
557
558 hbox2 = create_hbox(vboxall);
559 gtk_widget_realize(fp);
560
561 button = create_button(fp,_("Cancel"));
562 gtk_box_pack_start (GTK_BOX( hbox2), button, TRUE, TRUE, 3);
563 g_signal_connect_swapped(G_OBJECT(button), "clicked",G_CALLBACK(delete_child),GTK_OBJECT(fp));
564 gtk_widget_show (button);
565
566 button = create_button(fp,_("OK"));
567 gtk_box_pack_start (GTK_BOX( hbox2), button, TRUE, TRUE, 3);
568 gtk_widget_show (button);
569 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(gene_scf),(gpointer)entry);
570 g_signal_connect_swapped(G_OBJECT(button), "clicked",G_CALLBACK(delete_child),GTK_OBJECT(fp));
571
572
573
574 gtk_widget_show_all(fp);
575 }
576 /*****************************************************************************************/
freq_activate(GtkWidget * button,gpointer data)577 static void freq_activate(GtkWidget *button,gpointer data)
578 {
579 GtkWidget* buttonOptions =(GtkWidget*)data;
580 if (GTK_TOGGLE_BUTTON (button)->active)
581 {
582 if(Tfreq == NULL ) Tfreq=g_malloc(50*sizeof(gchar));
583 sprintf(Tfreq," freq");
584 if(GTK_IS_WIDGET(buttonOptions)) gtk_widget_set_sensitive(buttonOptions,TRUE);
585 }
586 else
587 {
588 if(Tfreq) g_free(Tfreq);
589 Tfreq = NULL;
590 if(GTK_IS_WIDGET(buttonOptions)) gtk_widget_set_sensitive(buttonOptions,FALSE);
591 }
592 }
593 /*****************************************************************************************/
gene_freq(GtkWidget * b,gpointer data)594 static void gene_freq(GtkWidget *b,gpointer data)
595 {
596 GtkWidget **entryall;
597 GtkWidget *entry;
598 G_CONST_RETURN gchar *entrytext;
599 guint ipar;
600 ipar=0;
601 if(Tfreq == NULL ) Tfreq=g_malloc(50*sizeof(gchar));
602 sprintf(Tfreq," freq");
603 entryall=(GtkWidget **)data;
604 entry=entryall[0];
605 entrytext = gtk_entry_get_text(GTK_ENTRY(entry));
606 if (!strcmp(entrytext,_("Yes")) )
607 {
608 ipar=1;
609 strcat(Tfreq,"(VCD");
610 }
611 entry=entryall[1];
612 entrytext = gtk_entry_get_text(GTK_ENTRY(entry));
613 if (!strcmp(entrytext,_("Yes")) )
614 {
615 if(ipar)
616 strcat(Tfreq,",Raman");
617 else
618 {
619 ipar=1;
620 strcat(Tfreq,"(Raman");
621 }
622 }
623 entry=entryall[2];
624 entrytext = gtk_entry_get_text(GTK_ENTRY(entry));
625 if (strcmp(entrytext,_("default")) )
626 {
627 if(ipar)
628 sprintf(Tfreq+strlen(Tfreq),",%s",entrytext);
629 else
630 {
631 ipar=1;
632 sprintf(Tfreq+strlen(Tfreq),"(%s",entrytext);
633 }
634 }
635 entry=entryall[3];
636 entrytext = gtk_entry_get_text(GTK_ENTRY(entry));
637 if (strcmp(entrytext,_("default")) )
638 {
639 if(ipar)
640 sprintf(Tfreq+strlen(Tfreq),",Step=%s",entrytext);
641 else
642 {
643 ipar=1;
644 sprintf(Tfreq+strlen(Tfreq),"(Step=%s",entrytext);
645 }
646 }
647 if(ipar)
648 strcat(Tfreq,") ");
649 }
650 /*****************************************************************************************/
create_freq_option(GtkWidget * Wins)651 static void create_freq_option ( GtkWidget *Wins)
652 {
653 GtkWidget *fp;
654 GtkWidget *frame;
655 GtkWidget **entry;
656 GtkWidget *vboxall;
657 GtkWidget *vboxframe;
658 GtkWidget *hbox1;
659 GtkWidget *hbox2;
660 GtkWidget *button;
661 int nlist = 1;
662 gchar *list[4];
663 entry=g_malloc(4*sizeof(GtkWidget*));
664
665 fp = gtk_window_new(GTK_WINDOW_TOPLEVEL);
666 gtk_window_set_modal(GTK_WINDOW(fp),TRUE);
667 gtk_window_set_position(GTK_WINDOW(fp),GTK_WIN_POS_CENTER);
668 gtk_window_set_title(GTK_WINDOW(fp),_("Compute frequencies"));
669 gtk_container_set_border_width (GTK_CONTAINER (fp), 5);
670
671 gtk_window_set_transient_for(GTK_WINDOW(fp),GTK_WINDOW(Wins));
672 gtk_window_set_modal (GTK_WINDOW (fp), TRUE);
673
674 add_child(Wins,fp,gtk_widget_destroy,_(" Constants force "));
675 g_signal_connect(G_OBJECT(fp),"delete_event",(GCallback)delete_child,NULL);
676
677 vboxall = create_vbox(fp);
678 frame = gtk_frame_new (_("Force constants"));
679 gtk_container_set_border_width (GTK_CONTAINER (frame), 5);
680 gtk_container_add (GTK_CONTAINER (vboxall), frame);
681 gtk_widget_show (frame);
682
683 vboxframe = create_vbox(frame);
684 hbox1 = create_hbox(vboxframe);
685 list[0]=g_strdup("");
686 nlist=2;
687 list[0]=g_strdup(_("No"));
688 list[1]=g_strdup(_("Yes"));
689 entry[0]= create_combo_box_entry_liste(fp,hbox1,_("Compute the vibrational circular dichroism ? : "),list,nlist);
690 nlist=2;
691 list[0]=g_strdup(_("No"));
692 list[1]=g_strdup(_("Yes"));
693 hbox1 = create_hbox(vboxframe);
694 entry[1]= create_combo_box_entry_liste(fp,hbox1,_("Compute Raman intensities ? : "),list,nlist);
695 nlist=4;
696 list[0]=g_strdup(_("default"));
697 list[1]=g_strdup("Analytic");
698 list[2]=g_strdup("Numerical");
699 list[3]=g_strdup("EnOnly");
700 hbox1 = create_hbox(vboxframe);
701 entry[2]= create_combo_box_entry_liste(fp,hbox1,_("Type of second derivatives : "),list,nlist);
702 nlist=4;
703 list[0]=g_strdup(_("default"));
704 list[1]=g_strdup("1");
705 list[2]=g_strdup("10");
706 list[3]=g_strdup("100");
707 hbox1 = create_hbox(vboxframe);
708 entry[3]= create_combo_box_entry_liste(fp,hbox1,_("Step-size for numerical differentiation :"),list,nlist);
709
710 hbox2 = create_hbox(vboxall);
711 gtk_widget_realize(fp);
712
713 button = create_button(fp,_("Cancel"));
714 gtk_box_pack_start (GTK_BOX( hbox2), button, TRUE, TRUE, 3);
715 g_signal_connect_swapped(G_OBJECT(button), "clicked",G_CALLBACK(delete_child),GTK_OBJECT(fp));
716 gtk_widget_show (button);
717
718 button = create_button(fp,_("OK"));
719 gtk_box_pack_start (GTK_BOX( hbox2), button, TRUE, TRUE, 3);
720 gtk_widget_show (button);
721 g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(gene_freq),(gpointer)entry);
722 g_signal_connect_swapped(G_OBJECT(button), "clicked",G_CALLBACK(delete_child),GTK_OBJECT(fp));
723
724
725 gtk_widget_show_all(fp);
726 }
727 /*****************************************************************************************/
traite_button_general(GtkWidget * button,gpointer data)728 void traite_button_general (GtkWidget *button, gpointer data)
729 {
730 GtkWidget *Wins = GTK_WIDGET(g_object_get_data (G_OBJECT (button), "Window"));
731 if (!strcmp((char *)data,_("Compute frequencies")) ) create_freq_option(Wins);
732 else
733 if (!strcmp((char *)data,_(" Controls the SCF procedure" )) ) create_scf_option(Wins);
734 else
735 if (!strcmp((char *)data,_("Compute the dipole polarizabilities" )) ) create_polar_option(Wins);
736 }
737 /*****************************************************************************************/
connect_button(GtkWidget * Wins,GtkWidget * button,gchar * t)738 void connect_button(GtkWidget *Wins,GtkWidget *button,gchar *t)
739 {
740 g_object_set_data(G_OBJECT (button), "Window", Wins);
741 g_signal_connect(G_OBJECT(button), "clicked",G_CALLBACK(traite_button_general),(gpointer)t);
742 }
743 /*****************************************************************************************/
create_liste_general(GtkWidget * Wins,GtkWidget * win,GtkWidget * frame)744 void create_liste_general(GtkWidget*Wins,GtkWidget*win,GtkWidget *frame)
745 {
746 GtkWidget *vbox;
747 GtkWidget *hbox;
748 GtkWidget *hseparator;
749 GtkWidget *checkbutton;
750 gchar *t;
751 GtkWidget *table;
752 gint i;
753 gint j;
754
755 vbox =create_vbox(frame);
756 hseparator = create_hseparator(vbox);
757
758 table = gtk_table_new(8,2,FALSE);
759 gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, FALSE, 0);
760 /* polarisability */
761 {
762 GtkWidget *buttonCheck;
763 GtkWidget *buttonOption;
764
765 i = 0;
766 t=g_strdup(_("Compute the dipole polarizabilities"));
767 buttonCheck = gtk_check_button_new_with_label (t);
768 j = 0;
769 gtk_table_attach(GTK_TABLE(table),buttonCheck,j,j+1,i,i+1, (GtkAttachOptions)(GTK_FILL | GTK_EXPAND) , (GtkAttachOptions)(GTK_FILL | GTK_EXPAND), 1,1);
770 gtk_widget_show (buttonCheck);
771
772 buttonOption = gtk_button_new_with_label (_("Options"));
773 j = 1;
774 gtk_table_attach(GTK_TABLE(table),buttonOption,j,j+1,i,i+1, (GtkAttachOptions)(GTK_FILL | GTK_EXPAND) , (GtkAttachOptions)(GTK_FILL | GTK_EXPAND), 1,1);
775 gtk_widget_show (buttonOption);
776 if(GTK_IS_WIDGET(buttonOption)) gtk_widget_set_sensitive(buttonOption,FALSE);
777 connect_button(Wins,buttonOption,t);
778 g_signal_connect(G_OBJECT(buttonCheck), "clicked",G_CALLBACK(polar_activate),(gpointer)buttonOption);
779 hseparator = gtk_hseparator_new ();
780
781 i++;
782 gtk_table_attach(GTK_TABLE(table),hseparator,0,0+2,i,i+1, (GtkAttachOptions)(GTK_FILL | GTK_EXPAND) , (GtkAttachOptions)(GTK_FILL | GTK_EXPAND), 1,1);
783 }
784 /* force constants */
785 {
786 GtkWidget *buttonCheck;
787 GtkWidget *buttonOption;
788
789 i++;
790 t=g_strdup(_("Compute frequencies"));
791 buttonCheck = gtk_check_button_new_with_label (t);
792 j = 0;
793 gtk_table_attach(GTK_TABLE(table),buttonCheck,j,j+1,i,i+1, (GtkAttachOptions)(GTK_FILL | GTK_EXPAND) , (GtkAttachOptions)(GTK_FILL | GTK_EXPAND), 1,1);
794 gtk_widget_show (buttonCheck);
795
796 buttonOption = gtk_button_new_with_label (_("Options"));
797 j = 1;
798 gtk_table_attach(GTK_TABLE(table),buttonOption,j,j+1,i,i+1, (GtkAttachOptions)(GTK_FILL | GTK_EXPAND) , (GtkAttachOptions)(GTK_FILL | GTK_EXPAND), 1,1);
799 gtk_widget_show (buttonOption);
800 if(GTK_IS_WIDGET(buttonOption)) gtk_widget_set_sensitive(buttonOption,FALSE);
801 connect_button(Wins,buttonOption,t);
802 g_signal_connect(G_OBJECT(buttonCheck), "clicked",G_CALLBACK(freq_activate),(gpointer)buttonOption);
803 hseparator = gtk_hseparator_new ();
804
805 i++;
806 gtk_table_attach(GTK_TABLE(table),hseparator,0,0+2,i,i+1, (GtkAttachOptions)(GTK_FILL | GTK_EXPAND) , (GtkAttachOptions)(GTK_FILL | GTK_EXPAND), 1,1);
807 }
808 /* scf procedure */
809 {
810 GtkWidget *label;
811 GtkWidget *buttonOption;
812 GtkWidget *hbox = gtk_hbox_new(0,FALSE);
813
814
815 i++;
816 t=g_strdup(_(" Controls the SCF procedure"));
817 label = gtk_label_new (t);
818 gtk_label_set_justify(GTK_LABEL(label),GTK_JUSTIFY_LEFT);
819 gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
820 gtk_widget_show (label);
821 gtk_widget_show (hbox);
822 j = 0;
823 gtk_table_attach(GTK_TABLE(table),hbox,j,j+1,i,i+1, (GtkAttachOptions)(GTK_FILL | GTK_SHRINK) , (GtkAttachOptions)(GTK_FILL | GTK_SHRINK), 1,1);
824
825 buttonOption = gtk_button_new_with_label (_("Go"));
826 j = 1;
827 gtk_table_attach(GTK_TABLE(table),buttonOption,j,j+1,i,i+1, (GtkAttachOptions)(GTK_FILL | GTK_EXPAND) , (GtkAttachOptions)(GTK_FILL | GTK_EXPAND), 1,1);
828 gtk_widget_show (buttonOption);
829 if(GTK_IS_WIDGET(buttonOption)) gtk_widget_set_sensitive(buttonOption,TRUE);
830 connect_button(Wins,buttonOption,t);
831 hseparator = gtk_hseparator_new ();
832
833 i++;
834 gtk_table_attach(GTK_TABLE(table),hseparator,0,0+2,i,i+1, (GtkAttachOptions)(GTK_FILL | GTK_EXPAND) , (GtkAttachOptions)(GTK_FILL | GTK_EXPAND), 1,1);
835 }
836
837 hbox =create_hbox(vbox);
838 checkbutton = gtk_check_button_new_with_label (_("Extra print keys for gabedit"));
839 CheckButtons[0]=checkbutton;
840 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), TRUE);
841 gtk_widget_show (checkbutton);
842 gtk_box_pack_start (GTK_BOX (hbox), checkbutton, TRUE, TRUE, 0);
843
844 checkbutton = gtk_check_button_new_with_label (_("Full population analysis"));
845 CheckButtons[1]=checkbutton;
846 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), TRUE);
847 gtk_widget_show (checkbutton);
848 gtk_box_pack_start (GTK_BOX (hbox), checkbutton, TRUE, TRUE, 0);
849
850 hbox =create_hbox(vbox);
851 checkbutton = gtk_check_button_new_with_label (_("Archive"));
852 CheckButtons[2]=checkbutton;
853 gtk_widget_show (checkbutton);
854 gtk_box_pack_start (GTK_BOX (hbox), checkbutton, TRUE, TRUE, 0);
855
856 checkbutton = gtk_check_button_new_with_label (_("Ignore Symmetry"));
857 CheckButtons[3]=checkbutton;
858 gtk_widget_show (checkbutton);
859 gtk_box_pack_start (GTK_BOX (hbox), checkbutton, TRUE, TRUE, 0);
860
861 hbox =create_hbox(vbox);
862 checkbutton = gtk_check_button_new_with_label (_("Addtional print"));
863 CheckButtons[4]=checkbutton;
864 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), TRUE);
865 gtk_widget_show (checkbutton);
866 gtk_box_pack_start (GTK_BOX (hbox), checkbutton, TRUE, TRUE, 0);
867
868 checkbutton = gtk_check_button_new_with_label (_("Density"));
869 CheckButtons[5]=checkbutton;
870 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), TRUE);
871 gtk_widget_show (checkbutton);
872 gtk_box_pack_start (GTK_BOX (hbox), checkbutton, TRUE, TRUE, 0);
873
874 checkbutton = gtk_check_button_new_with_label (_("Mix HOMO & LUMO in initial guess"));
875 CheckButtons[6]=checkbutton;
876 gtk_widget_show (checkbutton);
877 gtk_box_pack_start (GTK_BOX (vbox), checkbutton, FALSE, FALSE, 0);
878
879 checkbutton = gtk_check_button_new_with_label (_("Read initial Guess from checkpoint"));
880 CheckButtons[7]=checkbutton;
881 gtk_widget_show (checkbutton);
882 gtk_box_pack_start (GTK_BOX (vbox), checkbutton, FALSE, FALSE, 0);
883
884 checkbutton = gtk_check_button_new_with_label (_("Read geometry from checkpoint"));
885 CheckButtons[8]=checkbutton;
886 gtk_widget_show (checkbutton);
887 gtk_box_pack_start (GTK_BOX (vbox), checkbutton, FALSE, FALSE, 0);
888
889 hseparator = create_hseparator(vbox);
890
891 }
892 /*****************************************************************************************/
c_opt_combo()893 void c_opt_combo()
894 {
895 gchar *liste[9];
896 int nliste = 0;
897 nliste=4;
898 liste[0]=g_strdup(_("default"));
899 liste[1]=g_strdup("Redundant");
900 liste[2]=g_strdup("Z-matrix");
901 liste[3]=g_strdup("Cartesian");
902 HboxT[0] = create_hbox(VboxT);
903 EntryTypes[0]= create_combo_box_entry_liste(FrameT,HboxT[0],_(" Coordinate system options :"),liste,nliste);
904 nliste=4;
905 liste[0]=g_strdup(_("default"));
906 liste[1]=g_strdup("Tight");
907 liste[2]=g_strdup("VeryTight");
908 liste[3]=g_strdup("Loose");
909 HboxT[1] = create_hbox(VboxT);
910 EntryTypes[1]= create_combo_box_entry_liste(FrameT,HboxT[1],_(" Convergence criteries :"),liste,nliste);
911 nliste=5;
912 liste[0]=g_strdup(_("default"));
913 liste[1]=g_strdup("20");
914 liste[2]=g_strdup("10");
915 liste[3]=g_strdup("30");
916 liste[4]=g_strdup("40");
917 HboxT[2] = create_hbox(VboxT);
918 EntryTypes[2]= create_combo_box_entry_liste(FrameT,HboxT[2],_(" MaxCycle :"),liste,nliste);
919 nliste=4;
920 liste[0]=g_strdup(_("default"));
921 liste[1]=g_strdup("20");
922 liste[2]=g_strdup("30");
923 liste[3]=g_strdup("40");
924 HboxT[3] = create_hbox(VboxT);
925 EntryTypes[3]= create_combo_box_entry_liste(FrameT,HboxT[3],_(" StepSize :"),liste,nliste);
926 nliste=4;
927 liste[0]=g_strdup(_("No"));
928 liste[1]=g_strdup("1");
929 liste[2]=g_strdup("2");
930 liste[3]=g_strdup("3");
931 HboxT[4] = create_hbox(VboxT);
932 EntryTypes[4]= create_combo_box_entry_liste(FrameT,HboxT[4],_(" Saddle point of order :"),liste,nliste);
933 nliste=2;
934 liste[0]=g_strdup(_("No"));
935 liste[1]=g_strdup(_("Yes"));
936 HboxT[5] = create_hbox(VboxT);
937 EntryTypes[5]= create_combo_box_entry_liste(FrameT,HboxT[5],_(" optimization a transition :"),liste,nliste);
938 }
939 /********************************************************************************************************/
traite_types(GtkComboBox * combobox,gpointer d)940 static void traite_types (GtkComboBox *combobox, gpointer d)
941 {
942 guint i;
943 GtkTreeIter iter;
944 gchar* data = NULL;
945 if (gtk_combo_box_get_active_iter (combobox, &iter))
946 {
947 GtkTreeModel* model = gtk_combo_box_get_model(combobox);
948 gtk_tree_model_get (model, &iter, 0, &data, -1);
949 }
950 if(Types) g_free(Types);
951 Types = NULL;
952 if (data) Types = g_strdup(data);
953
954 for (i=0;i<nHboxT;i++)
955 {
956 if(HboxT[i]!=NULL)
957 {
958 gtk_widget_destroy(HboxT[i]);
959 HboxT[i] = NULL;
960 }
961 }
962 if (!strcmp((char *)data,_("Geometry Optimization")) ) c_opt_combo();
963 gtk_widget_show_all(FrameT);
964 }
965 /********************************************************************************************************/
create_liste_types(GtkWidget * win,GtkWidget * frame)966 static GtkWidget *create_liste_types(GtkWidget*win,GtkWidget *frame)
967 {
968 GtkWidget *hbox;
969 GtkWidget *vbox;
970 GtkWidget *hseparator;
971 GtkTreeIter iter;
972 GtkTreeStore *store;
973 GtkTreeModel *model;
974 GtkWidget *combobox;
975 GtkCellRenderer *renderer;
976
977 vbox =create_vbox(frame);
978 VboxT=vbox;
979 hbox =create_hbox(vbox);
980
981 store = gtk_tree_store_new (1,G_TYPE_STRING);
982 gtk_tree_store_append (store, &iter, NULL);
983 gtk_tree_store_set (store, &iter, 0, _("Single Point"), -1);
984 gtk_tree_store_append (store, &iter, NULL);
985 gtk_tree_store_set (store, &iter, 0, _("Geometry Optimization"), -1);
986
987 model = GTK_TREE_MODEL (store);
988 combobox = gtk_combo_box_new_with_model (model);
989 g_object_unref (model);
990 gtk_box_pack_start (GTK_BOX (hbox), combobox, TRUE, TRUE, 1);
991 g_signal_connect (G_OBJECT(combobox), "changed", G_CALLBACK(traite_types), NULL);
992 renderer = gtk_cell_renderer_text_new ();
993 gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox), renderer, TRUE);
994 gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer, "text", 0, NULL);
995
996 hseparator = gtk_hseparator_new ();
997 gtk_widget_show (hseparator);
998 gtk_box_pack_start (GTK_BOX (vbox), hseparator, FALSE, FALSE, 1);
999 gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), 0);
1000 return combobox;
1001 }
1002 /*****************************************************************************************/
create_add_keyword(GtkWidget * win,GtkWidget * vbox,gchar * tlabel)1003 GtkWidget *create_add_keyword (GtkWidget* win,GtkWidget *vbox,gchar *tlabel)
1004 {
1005 GtkWidget *label;
1006 GtkWidget *entry;
1007 GtkWidget *hbox;
1008
1009 hbox = gtk_hbox_new (FALSE, 0);
1010 gtk_widget_show (hbox);
1011 gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
1012
1013 label = gtk_label_new (tlabel);
1014 gtk_widget_show (label);
1015 gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
1016
1017 entry = gtk_entry_new ();
1018 gtk_widget_show (entry);
1019 gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0);
1020
1021 return entry;
1022 }
1023 /*****************************************************************************************/
GAjoutePageRouteMain(GtkWidget * NoteBook,GtkWidget * Wins)1024 void GAjoutePageRouteMain(GtkWidget *NoteBook,GtkWidget *Wins)
1025 {
1026 GtkWidget *LabelOnglet;
1027 GtkWidget *LabelMenu;
1028 GtkWidget *window1;
1029 GtkWidget *vbox;
1030 GtkWidget *hbox;
1031 GtkWidget *FrameType;
1032 GtkWidget *FrameGeneral;
1033 GtkWidget *FrameMethodeBase;
1034 guint i;
1035
1036 Tfreq=NULL;
1037 Tscf=NULL;
1038 Tpolar=NULL;
1039 Types=NULL;
1040 nHboxT=NHBOXT_MAX;
1041
1042 for(i=0;i<6;i++)
1043 EntryChargeSpin[i] = NULL;
1044
1045 for(i=0;i<nHboxT;i++)
1046 HboxT[i]=NULL;
1047
1048 window1 = gtk_frame_new(NULL);
1049
1050 LabelOnglet = gtk_label_new(_("Main"));
1051 LabelMenu = gtk_label_new(_("Main"));
1052 gtk_notebook_append_page_menu(GTK_NOTEBOOK(NoteBook),
1053 window1,
1054 LabelOnglet, LabelMenu);
1055
1056 g_object_set_data(G_OBJECT (window1), "window1", window1);
1057
1058 vbox =create_vbox(window1);
1059
1060 hbox =create_hbox(vbox);
1061 addChargeSpinFrame(hbox);
1062
1063 hbox =create_hbox(vbox);
1064
1065 FrameMethodeBase = create_frame(window1,hbox,_("METHOD"));
1066 create_notebook_MB( FrameMethodeBase);
1067
1068 hbox =create_hbox(vbox);
1069
1070 FrameType = create_frame(window1,hbox,_("TYPE"));
1071 FrameT=FrameType;
1072 create_liste_types(window1,FrameType);
1073 FrameGeneral = create_frame(window1,hbox,_("GENERAL"));
1074 create_liste_general(Wins,window1,FrameGeneral);
1075 gtk_widget_show_all(window1);
1076 gtk_widget_hide (CheckButtons[8]);
1077 }
1078 /*****************************************************************************************/
GAjoutePageRouteOptions(GtkWidget * NoteBook,GtkWidget * Wins)1079 void GAjoutePageRouteOptions(GtkWidget *NoteBook,GtkWidget *Wins)
1080 {
1081 GtkWidget *Frame;
1082 GtkWidget *LabelOnglet;
1083 GtkWidget *LabelMenu;
1084 GtkWidget *window1;
1085 GtkWidget *vbox;
1086 GtkWidget *hbox;
1087 GtkWidget *FrameLink;
1088 GtkWidget *FrameTitle;
1089
1090
1091 Frame = gtk_frame_new(NULL);
1092
1093 LabelOnglet = gtk_label_new(_("Options"));
1094 LabelMenu = gtk_label_new(_("Options"));
1095 gtk_notebook_append_page_menu(GTK_NOTEBOOK(NoteBook), Frame, LabelOnglet, LabelMenu);
1096
1097 window1 = Frame;
1098 g_object_set_data(G_OBJECT (window1), "window1", window1);
1099
1100 vbox =create_vbox(window1);
1101
1102 hbox =create_hbox(vbox);
1103
1104 FrameLink = create_frame(window1,hbox,_("LINK OPTIONS"));
1105 create_button_link(FrameLink,Wins);
1106
1107 FrameTitle = create_frame(window1,hbox,_("Title"));
1108 TextTitle = create_text(window1,FrameTitle,TRUE);
1109 gabedit_text_insert (GABEDIT_TEXT (TextTitle), NULL, NULL, NULL, _("Input file generated by gabedit..."), -1);
1110
1111 gtk_widget_show_all(Frame);
1112 }
1113
1114