1 /* MenuToolBarGeom.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 <math.h>
24 
25 #include "../Common/Global.h"
26 #include "../Utils/UtilsInterface.h"
27 #include "../Geometry/InterfaceGeom.h"
28 #include "../Utils/Utils.h"
29 #include "../Utils/AtomsProp.h"
30 #include "../Geometry/GeomGlobal.h"
31 #include "../Geometry/Measure.h"
32 #include "../Geometry/Fragments.h"
33 #include "../Geometry/DrawGeom.h"
34 #include "../Geometry/Povray.h"
35 #include "../Common/Windows.h"
36 #include "../Utils/Transformation.h"
37 #include "../MolecularMechanics/MolecularMechanicsDlg.h"
38 #include "../MolecularMechanics/SetMMParameters.h"
39 #include "../MolecularMechanics/SetPDBTemplate.h"
40 #include "../SemiEmpirical/SemiEmpiricalDlg.h"
41 #include "../Geometry/GeomXYZ.h"
42 #include "../Geometry/GeomZmatrix.h"
43 #include "../Geometry/GeomSymmetry.h"
44 #include "../Files/FileChooser.h"
45 #include "../Geometry/ImagesGeom.h"
46 #include "../Geometry/RotFragments.h"
47 #include "../Geometry/BuildLinear.h"
48 #include "../Geometry/BuildRing.h"
49 #include "../Geometry/BuildRoZPhi.h"
50 #include "../Geometry/BuildPolyPeptide.h"
51 #include "../Geometry/BuildCrystal.h"
52 #include "../Geometry/BuildPolySaccharide.h"
53 #include "../Geometry/BuildPolyNucleicAcid.h"
54 #include "../Geometry/BuildNanoTube.h"
55 #include "../Geometry/PersonalFragments.h"
56 #include "../Geometry/ResultsAnalise.h"
57 #include "../Geometry/GeomConversion.h"
58 #include "../Geometry/MenuToolBarGeom.h"
59 #include "../Geometry/OpenBabel.h"
60 #include "../Geometry/FragmentsSelector.h"
61 #include "../Geometry/ExportGeom.h"
62 #include "../Utils/HydrogenBond.h"
63 #include "../Symmetry/MoleculeSymmetryInterface.h"
64 #include "../Common/StockIcons.h"
65 #include "../Geometry/AxesGeomGL.h"
66 #include "../Geometry/SelectionDlg.h"
67 
68 
69 /* #define EXPERIMENTAL 1*/
70 /*********************************************************************************************************************/
71 void activate_insert_crystal();
72 static	GtkUIManager *manager = NULL;
73 static GtkWidget* handleBoxToolBar = NULL;
74 static gboolean ViewToolBar = TRUE;
75 static	GtkToolbar* toolBar = NULL;
76 /******************************************************************/
view_toolbar()77 static void view_toolbar ()
78 {
79 	if(!handleBoxToolBar) return;
80 	if(ViewToolBar)
81  		gtk_widget_hide (GTK_WIDGET(handleBoxToolBar));
82 	else
83  		gtk_widget_show (GTK_WIDGET(handleBoxToolBar));
84 	ViewToolBar = !ViewToolBar;
85 }
86 /********************************************************************************/
set_atom(GtkWidget * button,gpointer data)87 static void set_atom(GtkWidget *button,gpointer data)
88 {
89 	GtkWidget* WinTable = g_object_get_data(G_OBJECT(button), "WinTable");
90 	/*
91 	GtkStyle *button_style = gtk_widget_get_style(WinTable);
92 	gchar* told;
93 	gtk_button_set_label(GTK_BUTTON(AtomButton), (gchar*)data);
94 	told = GTK_BUTTON(AtomButton)->label_text;
95 	GTK_BUTTON(AtomButton)->label_text = g_strdup(data);
96 	if(told) g_free(told);
97 	set_button_style(button_style,AtomButton,(gchar*)data);
98 	*/
99 	if(AtomToInsert) g_free(AtomToInsert);
100 	AtomToInsert = g_strdup((gchar*)data);
101 	if(GTK_IS_WIDGET(WinTable)) gtk_widget_destroy(WinTable);
102 }
103 /********************************************************************************/
select_atom()104 static void select_atom()
105 {
106 	GtkWidget* Table;
107 	GtkWidget* button;
108 	GtkWidget* frame;
109 	GtkWidget* WinTable;
110 	guint i;
111 	guint j;
112         GtkStyle *button_style;
113         /* GtkStyle *style;*/
114 
115 	gchar*** Symb = get_periodic_table();
116 
117 	WinTable = gtk_window_new(GTK_WINDOW_TOPLEVEL);
118 	gtk_window_set_modal(GTK_WINDOW(WinTable),TRUE);
119 	gtk_window_set_title(GTK_WINDOW(WinTable),_("Select your atom"));
120 	gtk_window_set_default_size (GTK_WINDOW(WinTable),(gint)(ScreenWidth*0.5),(gint)(ScreenHeight*0.4));
121 
122 	frame = gtk_frame_new (NULL);
123 	gtk_frame_set_shadow_type( GTK_FRAME(frame),GTK_SHADOW_ETCHED_OUT);
124 	gtk_container_set_border_width (GTK_CONTAINER (frame), 10);
125 
126 	gtk_container_add(GTK_CONTAINER(WinTable),frame);
127 	gtk_widget_show (frame);
128 
129 	Table = gtk_table_new(PERIODIC_TABLE_N_ROWS-1,PERIODIC_TABLE_N_COLUMNS,TRUE);
130 	gtk_container_add(GTK_CONTAINER(frame),Table);
131 	button_style = gtk_widget_get_style(WinTable);
132 
133 	for ( i = 0;i<PERIODIC_TABLE_N_ROWS-1;i++)
134 		for ( j = 0;j<PERIODIC_TABLE_N_COLUMNS;j++)
135 	{
136 		if(strcmp(Symb[j][i],"00"))
137 		{
138 			button = gtk_button_new_with_label(Symb[j][i]);
139 			/* style=set_button_style(button_style,button,Symb[j][i]);*/
140 			set_button_style(button_style,button,Symb[j][i]);
141 			g_object_set_data(G_OBJECT(button), "WinTable", WinTable);
142 			g_signal_connect(G_OBJECT(button), "clicked", (GCallback)set_atom,(gpointer )Symb[j][i]);
143 			gtk_table_attach(GTK_TABLE(Table),button,j,j+1,i,i+1,
144 				(GtkAttachOptions)(GTK_FILL | GTK_EXPAND) ,
145 				(GtkAttachOptions)(GTK_FILL | GTK_EXPAND),
146 			1,1);
147 		}
148 	}
149 
150   	gtk_window_set_transient_for(GTK_WINDOW(WinTable),GTK_WINDOW(GeomDlg));
151 	gtk_widget_show_all(WinTable);
152 }
153 /*********************************************************************************************************************/
154 enum
155 {
156 	OPERATION_TRANSLATE,
157 	OPERATION_ROTATION,
158 	OPERATION_ROTATION_Z,
159 	OPERATION_ZOOM,
160 	OPERATION_SCALE_STICK,
161 	OPERATION_SCALE_BALL,
162 	OPERATION_SCALE_DIPOLE,
163 	OPERATION_SELECTION_ATOMS,
164 	OPERATION_DELETE_OBJECTS,
165 	OPERATION_MOVE_ATOMS,
166 	OPERATION_ROTATION_ATOMS,
167 	OPERATION_ROTATION_Z_ATOMS,
168 	OPERATION_EDIT_OBJECTS,
169 	OPERATION_INSERT_FRAG,
170 	OPERATION_MEASURE,
171 };
render_operation_radio_action(GtkAction * action)172 static void render_operation_radio_action (GtkAction *action)
173 {
174 	gint value = gtk_radio_action_get_current_value (GTK_RADIO_ACTION (action));
175 	GtkWidget *atomToInsert = gtk_ui_manager_get_widget (manager, "/ToolbarGL/SetAtomToInsert");
176 
177 	if(GTK_IS_WIDGET(atomToInsert)) gtk_widget_set_sensitive(atomToInsert, FALSE);
178 
179 	switch(value)
180 	{
181 		case OPERATION_TRANSLATE : SetOperation(NULL, TRANSMOVIE); break;
182 		case  OPERATION_ROTATION : SetOperation(NULL, ROTATION); break;
183 		case OPERATION_ROTATION_Z : SetOperation(NULL,ROTATIONZ ); break;
184 		case  OPERATION_ZOOM : SetOperation(NULL, SCALEGEOM ); break;
185 		case  OPERATION_SCALE_STICK : SetOperation(NULL, SCALESTICK); break;
186 		case  OPERATION_SCALE_BALL : SetOperation(NULL, SCALEBALL); break;
187 		case  OPERATION_SCALE_DIPOLE : SetOperation(NULL, SCALEDIPOLE); break;
188 		case  OPERATION_SELECTION_ATOMS : SetOperation(NULL, SELECTOBJECTS); break;
189 		case OPERATION_DELETE_OBJECTS : SetOperation(NULL,DELETEOBJECTS ); break;
190 		case  OPERATION_MOVE_ATOMS : SetOperation(NULL, MOVEFRAG); break;
191 		case  OPERATION_ROTATION_ATOMS : SetOperation(NULL, ROTLOCFRAG ); break;
192 		case   OPERATION_ROTATION_Z_ATOMS : SetOperation(NULL, ROTZLOCFRAG); break;
193 		case   OPERATION_EDIT_OBJECTS :
194 			    SetOperation(NULL, EDITOBJECTS );
195 			    if(GTK_IS_WIDGET(atomToInsert)) gtk_widget_set_sensitive(atomToInsert, TRUE);
196 			    break;
197 		case   OPERATION_INSERT_FRAG :
198 				    		SetOperation(NULL, ADDFRAGMENT );
199 						create_window_fragments_selector("Functionals","Amine");
200 						break;
201 		case   OPERATION_MEASURE :
202 				    SetOperation(NULL, MEASURE );
203 				    {
204 					GtkAction * action = gtk_ui_manager_get_action(manager, "/ToolbarGL/ShowMeasureNoteBook");
205 					GtkWidget *notebook = gtk_ui_manager_get_widget (manager, "/ToolbarGL/ShowMeasureNoteBook");
206 					gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), TRUE);
207 					gtk_widget_set_sensitive(notebook, FALSE);
208 				    }
209 				    break;
210 	}
211 	if(value != OPERATION_MEASURE)
212 	{
213 		GtkWidget *notebook = gtk_ui_manager_get_widget (manager, "/ToolbarGL/ShowMeasureNoteBook");
214 		gtk_widget_set_sensitive(notebook, TRUE);
215 	}
216 }
217 static GtkRadioActionEntry operationsEntries[] = {
218   { "OperationsTranslate", GABEDIT_STOCK_TRANSLATE, N_("_Translate"), NULL, "Translation", OPERATION_TRANSLATE },
219   { "OperationsRotation", GABEDIT_STOCK_ROTATION, N_("_Rotation"), NULL, "Rotation", OPERATION_ROTATION },
220   { "OperationsRotationZ", GABEDIT_STOCK_ROTATION_Z, N_("Rotation about _z axis"), NULL, "Rotation about z axis", OPERATION_ROTATION_Z },
221   { "OperationsZoom", GABEDIT_STOCK_ZOOM, N_("Zo_om"), NULL, "Zoom", OPERATION_ZOOM },
222   { "OperationsScaleStick", GABEDIT_STOCK_SCALE_STICK, N_("Scale _stick"), NULL, "Scale stick", OPERATION_SCALE_STICK },
223   { "OperationsScaleBall", GABEDIT_STOCK_SCALE_BALL, N_("Scale _ball"), NULL, "Scale ball", OPERATION_SCALE_BALL },
224   { "OperationsScaleDipole", GABEDIT_STOCK_SCALE_DIPOLE, N_("Scale _dipole"), NULL, "Scale dipole", OPERATION_SCALE_DIPOLE },
225   { "OperationsSelectionOfAtoms", GABEDIT_STOCK_SELECT_RESIDUE, N_("_Selection of atoms"), NULL, "Selection of atoms", OPERATION_SELECTION_ATOMS },
226   { "OperationsDeleteObjects", GABEDIT_STOCK_DELETE_CUT, N_("_Delete selected atoms/bond"), NULL, "Delete selected atoms/bond", OPERATION_DELETE_OBJECTS },
227   { "OperationsMoveAtoms", GABEDIT_STOCK_MOVE_ATOM, N_("_Move selected atoms"), NULL, "Move selected atoms", OPERATION_MOVE_ATOMS },
228   { "OperationsRotationAtoms", GABEDIT_STOCK_ROTATION_LOCAL, N_("R_otation of selected atoms"), NULL, "Rotation of selected atoms", OPERATION_ROTATION_ATOMS },
229   { "OperationsRotationZAtoms", GABEDIT_STOCK_ROTATION_Z_LOCAL, N_("Rotation, about _z axis, of selected atoms"), NULL, "Rotation, about z axis, of selected atoms", OPERATION_ROTATION_Z_ATOMS },
230 
231   { "OperationsEditObjects", GABEDIT_STOCK_DRAW, N_("_Insert/Change atoms or bond"), NULL, "Insert/Change atoms or bond", OPERATION_EDIT_OBJECTS },
232   { "OperationsInsertFrag", GABEDIT_STOCK_IFRAG, N_("_Insert a fragment"), NULL, "Insert a fragment", OPERATION_INSERT_FRAG},
233   { "OperationsMeasure", GABEDIT_STOCK_MEASURE, N_("_Measure"), NULL, "Measure", OPERATION_MEASURE },
234 };
235 static guint numberOfOperationsEntries = G_N_ELEMENTS (operationsEntries);
236 /*********************************************************************************************************************/
237 enum
238 {
239 	LABEL_NO,
240 	LABEL_SYMBOLS,
241 	LABEL_NUMBERS,
242 	LABEL_SYMBOLS_NUMBERS,
243 	LABEL_CHARGES,
244 	LABEL_SYMBOLS_CHARGES,
245 	LABEL_NUMBERS_CHARGES,
246 	LABEL_REDIDUES,
247 	LABEL_COORDINATES,
248 	LABEL_MMTYPES,
249 	LABEL_PDBTYPES,
250 	LABEL_LAYERS,
251 };
render_label_radio_action(GtkAction * action)252 static void render_label_radio_action (GtkAction *action)
253 {
254 	gint value = gtk_radio_action_get_current_value (GTK_RADIO_ACTION (action));
255 
256 	switch(value)
257 	{
258 		case LABEL_NO : SetLabelOptions (NULL,  LABELNO); break;
259 		case  LABEL_SYMBOLS : SetLabelOptions (NULL, LABELSYMB ); break;
260 		case  LABEL_NUMBERS : SetLabelOptions (NULL,  LABELNUMB); break;
261 		case  LABEL_MMTYPES : SetLabelOptions (NULL,  LABELMMTYP); break;
262 		case  LABEL_PDBTYPES : SetLabelOptions (NULL,  LABELPDBTYP); break;
263 		case  LABEL_LAYERS : SetLabelOptions (NULL,  LABELLAYER); break;
264 		case  LABEL_SYMBOLS_NUMBERS : SetLabelOptions (NULL,  LABELSYMBNUMB); break;
265 		case  LABEL_CHARGES : SetLabelOptions (NULL,  LABELCHARGE); break;
266 		case  LABEL_SYMBOLS_CHARGES: SetLabelOptions (NULL,  LABELSYMBCHARGE); break;
267 		case  LABEL_NUMBERS_CHARGES: SetLabelOptions (NULL,  LABELNUMBCHARGE); break;
268 		case  LABEL_REDIDUES: SetLabelOptions (NULL,  LABELRESIDUES); break;
269 		case  LABEL_COORDINATES: SetLabelOptions (NULL,  LABELCOORDINATES); break;
270 	}
271 }
272 static GtkRadioActionEntry labelEntries[] = {
273   { "LabelsNothing", NULL, N_("_Nothing"), NULL, "no labels", LABEL_NO },
274   { "LabelsSymbols", NULL, N_("_Symbols"), NULL, "show symbols", LABEL_SYMBOLS},
275   { "LabelsNumbers", NULL, N_("_Numbers"), NULL, "show numbers of atoms", LABEL_NUMBERS},
276   { "LabelsMMTypes", NULL, N_("_MM Types"), NULL, "show MM types of atoms", LABEL_MMTYPES},
277   { "LabelsPDBTypes", NULL, N_("_PDB Types"), NULL, "show PDB types of atoms", LABEL_PDBTYPES},
278   { "LabelsLayers", NULL, N_("_Layer"), NULL, "show layer of atoms", LABEL_LAYERS},
279   { "LabelsSymbolsAndNumbers", NULL, N_("Symbols_&Numbers"), NULL, "show symbols and numbers of atoms", LABEL_SYMBOLS_NUMBERS},
280   { "LabelsCharges", NULL, N_("_Charges"), NULL, "show charges of atoms", LABEL_CHARGES},
281   { "LabelsSymbolsAndCharges", NULL, N_("Symbols_&Charges"), NULL, "show symbols and charges of atoms", LABEL_SYMBOLS_CHARGES},
282   { "LabelsNumbersAndCharges", NULL, N_("Numbers_&Charges"), NULL, "show numbers and charges of atoms", LABEL_NUMBERS_CHARGES},
283   { "LabelsRedidues", NULL, N_("Residues"), NULL, "show redidues", LABEL_REDIDUES},
284   { "LabelsCoordinates", NULL, N_("C_oordinates"), NULL, "show coordinates of atoms", LABEL_COORDINATES},
285 };
286 static guint numberOfLabelEntries = G_N_ELEMENTS (labelEntries);
287 /*********************************************************************************************************************/
288 typedef enum
289 {
290 	GEOMETRY_STICK,
291 	GEOMETRY_BALLSTICK,
292 	GEOMETRY_SPACEFILL,
293 }TypeRenderGeom;
render_geometry_radio_action(GtkAction * action)294 static void render_geometry_radio_action (GtkAction *action)
295 {
296 	gint value = gtk_radio_action_get_current_value (GTK_RADIO_ACTION (action));
297 
298 	switch(value)
299 	{
300 		case GEOMETRY_STICK :  RenderStick(); break;
301 		case GEOMETRY_BALLSTICK : RenderBallStick(); break;
302 		case GEOMETRY_SPACEFILL : RenderSpaceFill(); break;
303 	}
304 }
305 static GtkRadioActionEntry rendereGeometryEntries[] = {
306   { "RenderGeometryStick", GABEDIT_STOCK_RENDER_STICK, N_("_Stick"), NULL, "render stick", GEOMETRY_STICK },
307   { "RenderGeometryBallAndStick", GABEDIT_STOCK_RENDER_BALL_STICK, N_("_Ball&Stick"), NULL, "render Ball&Stick", GEOMETRY_BALLSTICK },
308   { "RenderGeometrySpaceFill", GABEDIT_STOCK_RENDER_BALL_STICK, N_("_Space fill"), NULL, "render space fill", GEOMETRY_SPACEFILL },
309 };
310 static guint numberOfRenderGeometryEntries = G_N_ELEMENTS (rendereGeometryEntries);
311 /*********************************************************************************************************************/
toggle_action(GtkAction * action)312 static void toggle_action (GtkAction *action)
313 {
314 	const gchar *name = gtk_action_get_name (action);
315 	if(!strcmp(name,"LabelsDistances")) SetLabelDistances(NULL, TRUE);
316 	else if(!strcmp(name,"LabelsDipole")) SetLabelDipole(NULL, TRUE);
317 #ifdef DRAWGEOMGL
318 	else if(!strcmp(name,"RenderLabelsOrtho")) SetLabelsOrtho(NULL, TRUE);
319 #endif
320 	else if(!strcmp(name,"RenderPerspective")) RenderPers(NULL, TRUE);
321 	else if(!strcmp(name,"RenderLighting")) RenderLight(NULL, TRUE);
322 	else if(!strcmp(name,"RenderOrtep")) RenderOrtep(NULL, TRUE);
323 	else if(!strcmp(name,"RenderCartoon")) RenderCartoon(NULL, TRUE);
324 	else if(!strcmp(name,"RenderShad")) RenderShad(NULL, TRUE);
325 #ifdef DRAWGEOMGL
326 	else if(!strcmp(name,"RenderShowAxes")) RenderAxes(NULL, TRUE);
327 	else if(!strcmp(name,"RenderShowBox")) RenderBox(NULL, TRUE);
328 #endif
329 	else if(!strcmp(name,"RenderShowDipole")) RenderDipole(NULL, TRUE);
330 	else if(!strcmp(name,"RenderShowHydrogenBonds")) RenderHBonds(NULL, TRUE);
331 	else if(!strcmp(name,"RenderShowDoubleTripleBonds"))
332 	{
333 		gboolean show = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
334 		RenderMultipleBonds(NULL,show);
335 	}
336 	else if(!strcmp(name,"ShowToolBar")) view_toolbar();
337 	else if(!strcmp(name,"ShowStatusBox"))
338 	{
339 		GtkWidget* box = g_object_get_data(G_OBJECT(GeomDlg), "StatusBox");
340 		gboolean show = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
341 		gtk_widget_hide(box);
342 		if(show) gtk_widget_show(box);
343 	}
344 	else if(!strcmp(name,"ShowMeasureNoteBook"))
345 	{
346 		gboolean show = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
347 		HideShowMeasure(!show);
348 	}
349 	else if(!strcmp(name,"AdjustHydrogens"))
350 	{
351 		gboolean show = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
352 		AdjustHydrogensYesNo(show);
353 	}
354 	else if(!strcmp(name,"RebuildConnectionsDuringEdition"))
355 	{
356 		gboolean rebuild = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
357 		RebuildConnectionsDuringEditionYesNo(rebuild);
358 	}
359 #ifdef DRAWGEOMGL
360 	else if(!strcmp(name,"RenderLightOnOff1"))
361 	{
362 		set_light_geom_on_off(0);
363 		rafresh_drawing();
364 	}
365 	else if(!strcmp(name,"RenderLightOnOff2"))
366 	{
367 		set_light_geom_on_off(1);
368 		rafresh_drawing();
369 	}
370 	else if(!strcmp(name,"RenderLightOnOff3"))
371 	{
372 		set_light_geom_on_off(2);
373 		rafresh_drawing();
374 	}
375 #endif
376 }
377 /*--------------------------------------------------------------------------------------------------------------------*/
378 static GtkToggleActionEntry gtkActionToggleEntries[] =
379 {
380 	{ "LabelsDistances", NULL, N_("_Distances"), NULL, "show distances", G_CALLBACK (toggle_action), FALSE },
381 	{ "LabelsDipole", NULL, N_("_Dipole"), NULL, "show dipole", G_CALLBACK (toggle_action), FALSE },
382 #ifdef DRAWGEOMGL
383 	{ "RenderLabelsOrtho", NULL, N_("_Orthographic labels"), NULL, "Orthographic labels", G_CALLBACK (toggle_action), FALSE },
384 #endif
385 
386 	{ "RenderPerspective", NULL, N_("_Perspective"), NULL, "render perspective", G_CALLBACK (toggle_action), FALSE },
387 	{ "RenderLighting", NULL, N_("_Lighting"), NULL, "render lighting", G_CALLBACK (toggle_action), FALSE },
388 	{ "RenderOrtep", NULL, N_("_Ortep"), NULL, "render ortep", G_CALLBACK (toggle_action), FALSE },
389 	{ "RenderCartoon", NULL, N_("_Cartoon"), NULL, "render cartoon", G_CALLBACK (toggle_action), FALSE },
390 	{ "RenderShad", NULL, N_("_Shad"), NULL, "render shad", G_CALLBACK (toggle_action), FALSE },
391 #ifdef DRAWGEOMGL
392 	{ "RenderShowAxes", NULL, N_("Show _Axes"), NULL, "Show axes", G_CALLBACK (toggle_action), FALSE },
393 	{ "RenderShowBox", NULL, N_("Show _Box"), NULL, "Show box", G_CALLBACK (toggle_action), FALSE },
394 #endif
395 	{ "RenderShowDipole", NULL, N_("Show _Dipole"), NULL, "Show dipole", G_CALLBACK (toggle_action), FALSE },
396 	{ "RenderShowHydrogenBonds", NULL, N_("Show _Hydrogen bonds"), NULL, "Show hydrogen bonds", G_CALLBACK (toggle_action), FALSE },
397 	{ "RenderShowDoubleTripleBonds", NULL, N_("Show _double & triple bonds"), NULL, "Show double&triple bonds", G_CALLBACK (toggle_action), TRUE },
398 
399 	{ "ShowToolBar", NULL, N_("_Show toolbar"), NULL, "show toolbar", G_CALLBACK (toggle_action), TRUE },
400 	{ "ShowStatusBox", NULL, N_("_show status handlebox"), NULL, "show status handlebox", G_CALLBACK (toggle_action), TRUE},
401 
402 	{ "ShowMeasureNoteBook", GABEDIT_STOCK_HIDE, N_("Show the measure notebook"), NULL, "show the measure notebook", G_CALLBACK (toggle_action), FALSE},
403 	{ "AdjustHydrogens", GABEDIT_STOCK_ADJUST_H, N_("Adjust _hydrogens"), NULL, "Adjus hydrogens", G_CALLBACK (toggle_action), FALSE},
404 	{ "RebuildConnectionsDuringEdition", GTK_STOCK_DISCONNECT, N_("Rebuild _connections during a move"), NULL, "Rebuild connections during a mov", G_CALLBACK (toggle_action), FALSE},
405 	{ "RenderLightOnOff1", NULL, N_("OnOff _1"), NULL, "On/Of the light number 1", G_CALLBACK (toggle_action), TRUE },
406 	{ "RenderLightOnOff2", NULL, N_("OnOff _2"), NULL, "On/Of the light number 2", G_CALLBACK (toggle_action), FALSE },
407 	{ "RenderLightOnOff3", NULL, N_("OnOff _3"), NULL, "On/Of the light number 3", G_CALLBACK (toggle_action), FALSE },
408 
409 };
410 
411 static guint numberOfGtkActionToggleEntries = G_N_ELEMENTS (gtkActionToggleEntries);
412 /*********************************************************************************************************************/
activate_action(GtkAction * action)413 static void activate_action (GtkAction *action)
414 {
415 	const gchar *name = gtk_action_get_name (action);
416 	if(!strcmp(name,"ReadAuto")) read_geom_any_file_dlg();
417 	if(!strcmp(name,"ReadXYZ")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_XYZ); }
418 	else if(!strcmp(name,"ReadPOSCAR")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_VASPPOSCAR); }
419 	else if(!strcmp(name,"ReadCIF")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_CIF); }
420 	else if(!strcmp(name,"ReadCIFNoSym")) { MethodeGeom = GEOM_IS_XYZ;selc_cif_file_nosym(); }
421 	else if(!strcmp(name,"ReadMol2")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_MOL2); }
422 	else if(!strcmp(name,"ReadTinker")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_TINKER); }
423 	else if(!strcmp(name,"ReadPDB")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_PDB); }
424 	else if(!strcmp(name,"ReadHyperchem")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_HIN);}
425 	else if(!strcmp(name,"ReadAIMAll")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_AIMALL);}
426 	else if(!strcmp(name,"ReadMol")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_MOL);}
427 	else if(!strcmp(name,"ReadGabedit")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_GABEDIT);}
428 	else if(!strcmp(name,"ReadGaussianZMat")) { MethodeGeom = GEOM_IS_ZMAT;selc_ZMatrix_file(); }
429 	else if(!strcmp(name,"ReadMopacZMat")) { MethodeGeom = GEOM_IS_ZMAT;selc_ZMatrix_mopac_file(); }
430 	else if(!strcmp(name,"ReadDaltonFirst")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_DALTONFIRST); }
431 	else if(!strcmp(name,"ReadDaltonLast")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_DALTONLAST); }
432 	else if(!strcmp(name,"ReadGamessFirst")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_GAMESSFIRST); }
433 	else if(!strcmp(name,"ReadGamessLast")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_GAMESSLAST); }
434 	else if(!strcmp(name,"ReadTurbomoleFirst")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_TURBOMOLEFIRST); }
435 	else if(!strcmp(name,"ReadTurbomoleLast")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_TURBOMOLELAST); }
436 	else if(!strcmp(name,"ReadGaussianInput")) { selc_all_input_file(_("Read Geometry from a Gaussian input file")); }
437 	else if(!strcmp(name,"ReadGaussianFirst")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_GAUSSOUTFIRST); }
438 	else if(!strcmp(name,"ReadGaussianLast")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_GAUSSOUTLAST);}
439 	else if(!strcmp(name,"ReadGaussianFChk")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_GAUSSIAN_FCHK);}
440 	else if(!strcmp(name,"ReadMolcasInput")) { selc_all_input_file(_("Read Geometry from a Molcas input file"));}
441 	else if(!strcmp(name,"ReadMolcasFirst")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_MOLCASOUTFIRST);}
442 	else if(!strcmp(name,"ReadMolcasLast")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_MOLCASOUTLAST);}
443 	else if(!strcmp(name,"ReadMolproInput")) { selc_all_input_file(_("Read Geometry from a Molpro input file"));}
444 	else if(!strcmp(name,"ReadMolproFirst")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_MOLPROOUTFIRST);}
445 	else if(!strcmp(name,"ReadMolproLast")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_MOLPROOUTLAST);}
446 	else if(!strcmp(name,"ReadMopacInput")) { selc_all_input_file(_("Read Geometry from a Mopac input file"));}
447 	else if(!strcmp(name,"ReadMopacFirst")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_MOPACOUTFIRST);}
448 	else if(!strcmp(name,"ReadMopacLast")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_MOPACOUTLAST);}
449 	else if(!strcmp(name,"ReadMopacAux")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_MOPACAUX);}
450 	else if(!strcmp(name,"ReadWFX")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_WFX);}
451 	else if(!strcmp(name,"ReadMopacScan"))
452  	  	file_chooser_open(read_geometries_conv_mopac_scan,_("Read Geomtries From Mopac Scan Output file"), GABEDIT_TYPEFILE_MOPAC,GABEDIT_TYPEWIN_GEOM);
453 	else if(!strcmp(name,"ReadMopacIRC"))
454  	  	file_chooser_open(read_geometries_conv_mopac_irc,_("Read Geomtries From Mopac IRC Output file"), GABEDIT_TYPEFILE_MOPAC,GABEDIT_TYPEWIN_GEOM);
455 	else if(!strcmp(name,"ReadMPQCInput")) { selc_all_input_file(_("Read Geometry from a MPQC input file"));}
456 	else if(!strcmp(name,"ReadMPQCFirst")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_MPQCOUTFIRST);}
457 	else if(!strcmp(name,"ReadMPQCLast")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_MPQCOUTLAST);}
458 	else if(!strcmp(name,"ReadFireFlyFirst")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_GAMESSFIRST); }
459 	else if(!strcmp(name,"ReadFireFlyLast")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_GAMESSLAST); }
460 	else if(!strcmp(name,"ReadOrcaFirst")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_ORCAOUTFIRST);}
461 	else if(!strcmp(name,"ReadOrcaLast")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_ORCAOUTLAST);}
462 	else if(!strcmp(name,"ReadVaspFirst")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_VASPOUTFIRST);}
463 	else if(!strcmp(name,"ReadVaspLast")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_VASPOUTLAST);}
464 	else if(!strcmp(name,"ReadVaspXMLFirst")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_VASPXMLFIRST);}
465 	else if(!strcmp(name,"ReadVaspXMLLast")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_VASPXMLLAST);}
466 	else if(!strcmp(name,"ReadNWChemFirst")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_NWCHEMOUTFIRST);}
467 	else if(!strcmp(name,"ReadNWChemLast")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_NWCHEMOUTLAST);}
468 
469 	else if(!strcmp(name,"ReadPsicodeFirst")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_PSICODEOUTFIRST);}
470 	else if(!strcmp(name,"ReadPsicodeLast")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_PSICODEOUTLAST);}
471 	else if(!strcmp(name,"ReadQChemFirst")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_QCHEMOUTFIRST);}
472 	else if(!strcmp(name,"ReadQChemLast")) { MethodeGeom = GEOM_IS_XYZ;selc_XYZ_file(GABEDIT_TYPEFILEGEOM_QCHEMOUTLAST);}
473 	else if(!strcmp(name,"ReadUsingOpenBabel")) { create_babel_read_dialogue(); }
474 	else if(!strcmp(name,"ReadGeomConvDalton"))
475  	  file_chooser_open(read_geometries_conv_dalton,_("Load Geom. Conv. From Dalton Output file"), GABEDIT_TYPEFILE_DALTON,GABEDIT_TYPEWIN_GEOM);
476 	else if(!strcmp(name,"ReadGeomConvGamess"))
477  	  file_chooser_open(read_geometries_conv_gamess,_("Load Geom. Conv. From Gamess Output file"), GABEDIT_TYPEFILE_GAMESS,GABEDIT_TYPEWIN_GEOM);
478 	else if(!strcmp(name,"ReadGeomConvFireFly"))
479  	  file_chooser_open(read_geometries_conv_gamess,_("Load Geom. Conv. From FireFly Output file"), GABEDIT_TYPEFILE_FIREFLY,GABEDIT_TYPEWIN_GEOM);
480 	else if(!strcmp(name,"ReadGeomIRCGamess"))
481  	  file_chooser_open(read_geometries_irc_gamess,_("Load Geom. From Gamess IRC file"), GABEDIT_TYPEFILE_GAMESSIRC,GABEDIT_TYPEWIN_GEOM);
482 	else if(!strcmp(name,"ReadGeomIRCFireFly"))
483  	  file_chooser_open(read_geometries_irc_gamess,_("Load Geom. From FireFly IRC file"), GABEDIT_TYPEFILE_GAMESSIRC,GABEDIT_TYPEWIN_GEOM);
484 	else if(!strcmp(name,"ReadGeomConvGaussian"))
485  	  file_chooser_open(read_geometries_conv_gaussian,_("Load Geom. Conv. From Gaussian Output file"), GABEDIT_TYPEFILE_GAUSSIAN,GABEDIT_TYPEWIN_GEOM);
486 	else if(!strcmp(name,"ReadGeomConvMolpro"))
487    	  file_chooser_open(read_geometries_conv_molpro,_("Load Geom. Conv. From Molpro log file"), GABEDIT_TYPEFILE_MOLPRO_LOG,GABEDIT_TYPEWIN_GEOM);
488 	else if(!strcmp(name,"ReadGeomConvMopac"))
489    	  file_chooser_open(read_geometries_conv_mopac,_("Load Geom. Conv. From Molpac aux file"), GABEDIT_TYPEFILE_MOPAC_AUX,GABEDIT_TYPEWIN_GEOM);
490 	else if(!strcmp(name,"ReadGeomConvMPQC"))
491    	  file_chooser_open(read_geometries_conv_mpqc,_("Load Geom. Conv. From MPQC output file"), GABEDIT_TYPEFILE_MPQC,GABEDIT_TYPEWIN_GEOM);
492 	else if(!strcmp(name,"ReadGeomConvOrca"))
493    	  file_chooser_open(read_geometries_conv_orca,_("Load Geom. Conv. From ORCA output file"), GABEDIT_TYPEFILE_ORCA,GABEDIT_TYPEWIN_GEOM);
494 	else if(!strcmp(name,"ReadGeomConvVasp"))
495    	  file_chooser_open(read_geometries_conv_vasp_outcar,_("Load Geom. Conv. From VASP output file"), GABEDIT_TYPEFILE_VASPOUTCAR,GABEDIT_TYPEWIN_GEOM);
496 	else if(!strcmp(name,"ReadGeomConvVaspXML"))
497    	  file_chooser_open(read_geometries_conv_vasp_xml,_("Load Geom. Conv. From VASP xml file"), GABEDIT_TYPEFILE_VASPXML,GABEDIT_TYPEWIN_GEOM);
498 
499 	else if(!strcmp(name,"ReadGeomConvNWChem"))
500    	  file_chooser_open(read_geometries_conv_nwchem,_("Load Geom. Conv. From NWChem output file"), GABEDIT_TYPEFILE_NWCHEM,GABEDIT_TYPEWIN_GEOM);
501 
502 	else if(!strcmp(name,"ReadGeomConvPsicode"))
503    	  file_chooser_open(read_geometries_conv_psicode,_("Load Geom. Conv. From Psicode output file"), GABEDIT_TYPEFILE_PSICODE,GABEDIT_TYPEWIN_GEOM);
504 
505 	else if(!strcmp(name,"ReadGeomConvQChem"))
506    	  file_chooser_open(read_geometries_conv_qchem,_("Load Geom. Conv. From Q-Chem output file"), GABEDIT_TYPEFILE_QCHEM,GABEDIT_TYPEWIN_GEOM);
507 
508 	else if(!strcmp(name,"ReadGeomConvGabedit"))
509    	  file_chooser_open(read_geometries_conv_gabedit,_("Load Geom. Conv. From Gabedit file"), GABEDIT_TYPEFILE_GABEDIT,GABEDIT_TYPEWIN_GEOM);
510 
511 	else if(!strcmp(name,"ReadGeomConvMolden"))
512    	  file_chooser_open(read_geometries_conv_molden,_("Load Geom. Conv. From Molden file"), GABEDIT_TYPEFILE_MOLDEN,GABEDIT_TYPEWIN_GEOM);
513 	else if(!strcmp(name,"ReadGeomConvXYZ"))
514   	  file_chooser_open(read_geometries_conv_xyz,_("Load Geom. Conv. From XYZ"), GABEDIT_TYPEFILE_XYZ,GABEDIT_TYPEWIN_GEOM);
515 	else if(!strcmp(name,"EditDeleteMolecule")) DeleteMolecule();
516 	else if(!strcmp(name,"EditDeleteHydrogenAtoms")) deleteHydrogenAtoms();
517 	else if(!strcmp(name,"EditDeleteSelectedAtoms")) deleteSelectedAtoms();
518 	else if(!strcmp(name,"EditMoveCenterOfSelectedAtomsToOrigin")) moveCenterOfSelectedAtomsToOrigin();
519 	else if(!strcmp(name,"EditAlignPrincipalAxesOfSelectedAtomsToXYZ")) alignPrincipalAxesOfSelectedAtomsToXYZ();
520 	else if(!strcmp(name,"EditAlignSelectedAndNotSelectedAtoms")) alignSelectedAndNotSelectedAtoms();
521 	else if(!strcmp(name,"EditCopySelectedAtoms")) copySelectedAtoms();
522 	else if(!strcmp(name,"EditResetAllConnections")) resetConnections();
523 	else if(!strcmp(name,"EditResetConnectionsBetweenSelectedAndNotSelectedAtoms")) resetConnectionsBetweenSelectedAndNotSelectedAtoms();
524 	else if(!strcmp(name,"EditResetConnectionsBetweenSelectedAtoms")) resetConnectionsBetweenSelectedAtoms();
525 
526 	else if(!strcmp(name,"EditResetMultipleConnections")) resetMultipleConnections();
527 	else if(!strcmp(name,"EditSelectAll"))
528 	{
529 		GtkAction *selectionAtoms = gtk_ui_manager_get_action (manager, "/MenuGeom/Operations/OperationsSelectionOfAtoms");
530 		gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(selectionAtoms), TRUE);
531 		SelectAllAtoms();
532 	}
533 	else if(!strcmp(name,"EditInvertSelection"))
534 	{
535 		GtkAction *selectionAtoms = gtk_ui_manager_get_action (manager, "/MenuGeom/Operations/OperationsSelectionOfAtoms");
536 		gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(selectionAtoms), TRUE);
537 		InvertSelectionOfAtoms();
538 	}
539 	else if(!strcmp(name,"EditUnSelectAll"))
540 	{
541 		GtkAction *selectionAtoms = gtk_ui_manager_get_action (manager, "/MenuGeom/Operations/OperationsSelectionOfAtoms");
542 		gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(selectionAtoms), TRUE);
543 		unSelectAllAtoms();
544 	}
545 	else if(!strcmp(name,"EditSelectHighAtoms"))
546 	{
547 		GtkAction *selectionAtoms = gtk_ui_manager_get_action (manager, "/MenuGeom/Operations/OperationsSelectionOfAtoms");
548 		gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(selectionAtoms), TRUE);
549 		SelectLayerAtoms(HIGH_LAYER);
550 	}
551 	else if(!strcmp(name,"EditSelectMediumAtoms"))
552 	{
553 		GtkAction *selectionAtoms = gtk_ui_manager_get_action (manager, "/MenuGeom/Operations/OperationsSelectionOfAtoms");
554 		gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(selectionAtoms), TRUE);
555 		SelectLayerAtoms(MEDIUM_LAYER);
556 	}
557 	else if(!strcmp(name,"EditSelectLowAtoms"))
558 	{
559 		GtkAction *selectionAtoms = gtk_ui_manager_get_action (manager, "/MenuGeom/Operations/OperationsSelectionOfAtoms");
560 		gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(selectionAtoms), TRUE);
561 		SelectLayerAtoms(LOW_LAYER);
562 	}
563 	else if(!strcmp(name,"EditSelectFixedAtoms"))
564 	{
565 		GtkAction *selectionAtoms = gtk_ui_manager_get_action (manager, "/MenuGeom/Operations/OperationsSelectionOfAtoms");
566 		gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(selectionAtoms), TRUE);
567 		SelectFixedVariableAtoms(FALSE);
568 	}
569 	else if(!strcmp(name,"EditSelectVariableAtoms"))
570 	{
571 		GtkAction *selectionAtoms = gtk_ui_manager_get_action (manager, "/MenuGeom/Operations/OperationsSelectionOfAtoms");
572 		gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(selectionAtoms), TRUE);
573 		SelectFixedVariableAtoms(TRUE);
574 	}
575 	else if(!strcmp(name,"EditSelectFirstResidue"))
576 	{
577 		GtkAction *selectionAtoms = gtk_ui_manager_get_action (manager, "/MenuGeom/Operations/OperationsSelectionOfAtoms");
578 		gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(selectionAtoms), TRUE);
579 		SelectFirstResidue();
580 	}
581 	else if(!strcmp(name,"EditSelectLastResidue"))
582 	{
583 		GtkAction *selectionAtoms = gtk_ui_manager_get_action (manager, "/MenuGeom/Operations/OperationsSelectionOfAtoms");
584 		gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(selectionAtoms), TRUE);
585 		SelectLastResidue();
586 	}
587 	else if(!strcmp(name,"EditSelectResidueByNumber"))
588 	{
589 		GtkAction *selectionAtoms = gtk_ui_manager_get_action (manager, "/MenuGeom/Operations/OperationsSelectionOfAtoms");
590 		gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(selectionAtoms), TRUE);
591 		selectResidueByNumberDlg();
592 	}
593 	else if(!strcmp(name,"EditSelectResidueByName"))
594 	{
595 		GtkAction *selectionAtoms = gtk_ui_manager_get_action (manager, "/MenuGeom/Operations/OperationsSelectionOfAtoms");
596 		gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(selectionAtoms), TRUE);
597 		selectResidueByNameDlg();
598 	}
599 	else if(!strcmp(name,"EditSelectAtomsByMMType"))
600 	{
601 		GtkAction *selectionAtoms = gtk_ui_manager_get_action (manager, "/MenuGeom/Operations/OperationsSelectionOfAtoms");
602 		gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(selectionAtoms), TRUE);
603 		selectAtomsByMMTypeDlg();
604 	}
605 	else if(!strcmp(name,"EditSelectAtomsByPDBType"))
606 	{
607 		GtkAction *selectionAtoms = gtk_ui_manager_get_action (manager, "/MenuGeom/Operations/OperationsSelectionOfAtoms");
608 		gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(selectionAtoms), TRUE);
609 		selectAtomsByPDBTypeDlg();
610 	}
611 	else if(!strcmp(name,"EditSelectAtomsBySymbol"))
612 	{
613 		GtkAction *selectionAtoms = gtk_ui_manager_get_action (manager, "/MenuGeom/Operations/OperationsSelectionOfAtoms");
614 		gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(selectionAtoms), TRUE);
615 		selectAtomsBySymbolDlg();
616 	}
617 	else if(!strcmp(name,"EditSelectAtomsBySphere"))
618 	{
619 		GtkAction *selectionAtoms = gtk_ui_manager_get_action (manager, "/MenuGeom/Operations/OperationsSelectionOfAtoms");
620 		gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(selectionAtoms), TRUE);
621 		selectAtomsBySphereDlg();
622 	}
623 	else if(!strcmp(name,"EditSelectAtomsByPositiveCharges"))
624 	{
625 		GtkAction *selectionAtoms = gtk_ui_manager_get_action (manager, "/MenuGeom/Operations/OperationsSelectionOfAtoms");
626 		gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(selectionAtoms), TRUE);
627 		selectAtomsByChargeValues(TRUE);
628 	}
629 	else if(!strcmp(name,"EditSelectAtomsByNegativeCharges"))
630 	{
631 		GtkAction *selectionAtoms = gtk_ui_manager_get_action (manager, "/MenuGeom/Operations/OperationsSelectionOfAtoms");
632 		gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(selectionAtoms), TRUE);
633 		selectAtomsByChargeValues(FALSE);
634 	}
635 	else if(!strcmp(name,"EditSelectAtomsMultiple"))
636 	{
637 		GtkAction *selectionAtoms = gtk_ui_manager_get_action (manager, "/MenuGeom/Operations/OperationsSelectionOfAtoms");
638 		gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(selectionAtoms), TRUE);
639 		selectionDlg();
640 	}
641 	else if(!strcmp(name,"EditOpenGeometryEditor"))
642 	{
643 		if(MethodeGeom == GEOM_IS_XYZ) create_GeomXYZ_from_draw_grometry();
644 		edit_geometry();
645 		unSelectAllAtoms();
646 	}
647 	else if(!strcmp(name,"SaveAsXYZ"))
648 	{
649 		create_GeomXYZ_from_draw_grometry();
650  	  	file_chooser_save(save_geometry_xyz_file,_("Save geometry in xyz file"), GABEDIT_TYPEFILE_XYZ,GABEDIT_TYPEWIN_GEOM);
651 	}
652 	else if(!strcmp(name,"SaveAsPOSCARCartn"))
653 	{
654 		create_GeomXYZ_from_draw_grometry();
655  	  	file_chooser_save(save_geometry_poscar_file,_("Save geometry in POSCAR file (for VASP)"), GABEDIT_TYPEFILE_VASPPOSCAR,GABEDIT_TYPEWIN_GEOM);
656 	}
657 	else if(!strcmp(name,"SaveAsPOSCARDirect"))
658 	{
659 		create_GeomXYZ_from_draw_grometry();
660  	  	file_chooser_save(save_geometry_poscar_direct_file,_("Save geometry in POSCAR file (for VASP)"), GABEDIT_TYPEFILE_VASPPOSCAR,GABEDIT_TYPEWIN_GEOM);
661 	}
662 	else if(!strcmp(name,"SaveAsCIFAllAtoms"))
663 	{
664 		create_GeomXYZ_from_draw_grometry();
665  	  	file_chooser_save(save_geometry_cif_allatoms_file,_("Save geometry in CIF file (All atoms)"), GABEDIT_TYPEFILE_CIF,GABEDIT_TYPEWIN_GEOM);
666 	}
667 	else if(!strcmp(name,"SaveAsCIF"))
668 	{
669 		create_GeomXYZ_from_draw_grometry();
670  	  	file_chooser_save(save_geometry_cif_file,_("Save geometry in CIF file (With sym operators)"), GABEDIT_TYPEFILE_CIF,GABEDIT_TYPEWIN_GEOM);
671 	}
672 	else if(!strcmp(name,"SaveAsGabedit"))
673 	{
674 		create_GeomXYZ_from_draw_grometry();
675  	  	file_chooser_save(save_geometry_gabedit_file,_("Save geometry in Gabedit file"), GABEDIT_TYPEFILE_GABEDIT,GABEDIT_TYPEWIN_GEOM);
676 	}
677 	else if(!strcmp(name,"SaveAsCChemI"))
678 	{
679 		create_GeomXYZ_from_draw_grometry();
680  	  	file_chooser_save(save_geometry_cchemi_file,_("Save geometry in CChemI file"), GABEDIT_TYPEFILE_CCHEMI,GABEDIT_TYPEWIN_GEOM);
681 	}
682 	else if(!strcmp(name,"SaveAsMol2"))
683 	{
684 		create_GeomXYZ_from_draw_grometry();
685  		file_chooser_save(save_geometry_mol2_file,_("Save geometry in mol2 file"), GABEDIT_TYPEFILE_MOL2,GABEDIT_TYPEWIN_GEOM);
686 	}
687 	else if(!strcmp(name,"SaveAsMol"))
688 	{
689 		create_GeomXYZ_from_draw_grometry();
690  		file_chooser_save(save_geometry_mol_file,_("Save geometry in mol file"), GABEDIT_TYPEFILE_MOL,GABEDIT_TYPEWIN_GEOM);
691 	}
692 	else if(!strcmp(name,"SaveAsTinker"))
693 	{
694 		create_GeomXYZ_from_draw_grometry();
695  		file_chooser_save(save_geometry_tinker_file,_("Save geometry in tinker file"), GABEDIT_TYPEFILE_TINKER,GABEDIT_TYPEWIN_GEOM);
696 	}
697 	else if(!strcmp(name,"SaveAsPDB"))
698 	{
699 		create_GeomXYZ_from_draw_grometry();
700  		file_chooser_save(save_geometry_pdb_file,_("Save geometry in pdb file"), GABEDIT_TYPEFILE_PDB,GABEDIT_TYPEWIN_GEOM);
701 	}
702 	else if(!strcmp(name,"SaveAsHyperchem"))
703 	{
704 		create_GeomXYZ_from_draw_grometry();
705  		file_chooser_save(save_geometry_hin_file,_("Save geometry in hyperchem file"), GABEDIT_TYPEFILE_HIN,GABEDIT_TYPEWIN_GEOM);
706 	}
707 	else if(!strcmp(name,"SaveAsMopacZMat"))
708 	{
709 		create_GeomXYZ_from_draw_grometry();
710 		MethodeGeom = GEOM_IS_XYZ;
711 		if(!xyz_to_zmat())
712 		{
713 			Message(_("Sorry\nConversion is not possible from XYZ to Zmat"),"Error",TRUE);
714 			return;
715 		}
716  		file_chooser_save(save_geometry_mzmatrix_file,_("Save geometry in mopac z-matrix file"), GABEDIT_TYPEFILE_MZMAT,GABEDIT_TYPEWIN_GEOM);
717 		create_GeomXYZ_from_draw_grometry();
718 		MethodeGeom = GEOM_IS_XYZ;
719 	}
720 	else if(!strcmp(name,"SaveAsGaussianZMat"))
721 	{
722 		create_GeomXYZ_from_draw_grometry();
723 		MethodeGeom = GEOM_IS_XYZ;
724 		if(!xyz_to_zmat())
725 		{
726 			Message(_("Sorry\nConversion is not possible from XYZ to Zmat"),_("Error"),TRUE);
727 			return;
728 		}
729  		file_chooser_save(save_geometry_gzmatrix_file,_("Save geometry in gaussian z-matrix file"), GABEDIT_TYPEFILE_GZMAT,GABEDIT_TYPEWIN_GEOM);
730 		create_GeomXYZ_from_draw_grometry();
731 		MethodeGeom = GEOM_IS_XYZ;
732 	}
733 	else if(!strcmp(name,"SaveUsingOpenBabel")) { create_babel_save_dialogue(); }
734 	else if(!strcmp(name,"BuildLinearMolecule")) build_linear_molecule_dlg();
735 	else if(!strcmp(name,"BuildNanoTube")) build_nanotube_dlg();
736 	else if(!strcmp(name,"BuildRingMolecule")) build_ring_molecule_dlg();
737 	else if(!strcmp(name,"BuildMoleculeWithSymmetry")) build_rozphi_molecule_dlg();
738 	else if(!strcmp(name,"BuildPolyPeptide")) build_polypeptide_dlg();
739 #ifdef DRAWGEOMGL
740 	else if(!strcmp(name,"BuildCrystalGen")) build_crystal_dlg();
741 	else if(!strcmp(name,"BuildSuperCellSimple")) build_supercell_simple_dlg();
742 	else if(!strcmp(name,"BuildSuperCell")) build_supercell_dlg();
743 	else if(!strcmp(name,"BuildWulff")) build_wulff_dlg();
744 	else if(!strcmp(name,"BuildSlab")) build_slab_dlg();
745 	else if(!strcmp(name,"WrapAtomsToCell")) wrap_atoms_to_cell();
746 	else if(!strcmp(name,"ComputeSpaceGroupSym")) compute_space_symmetry_group();
747 	else if(!strcmp(name,"ComputeSymmetryInfo")) compute_symmetry_info();
748 	else if(!strcmp(name,"ComputeKPointsPath")) compute_kpoints_path();
749 	else if(!strcmp(name,"ReductionNiggli")) reduce_cell_niggli();
750 	else if(!strcmp(name,"ReductionDelaunay")) reduce_cell_delaunay();
751 	else if(!strcmp(name,"ReductionPrimitive")) reduce_cell_primitive();
752 	else if(!strcmp(name,"StandardizeCellPrimitive")) standardize_cell_primitive();
753 	else if(!strcmp(name,"StandardizeCellConv")) standardize_cell_conventional();
754 	else if(!strcmp(name,"HelpCrystal")) help_references_crystallography();
755 	else if(!strcmp(name,"PrototypeCrystal")) activate_insert_crystal();
756 	else if(!strcmp(name,"SetSymPrec")) setSymPrecDlg();
757 	else if(!strcmp(name,"ComputeVolume")) compute_volume_cell();
758 #endif
759 	else if(!strcmp(name,"BuildPolyNucleicAcid")) build_polynucleicacid_dlg();
760 	else if(!strcmp(name,"BuildPolySaccharide")) build_polysaccharide_dlg();
761 	else if(!strcmp(name,"PersonalFragmentsNewGroup")) newGroupeDlg(NULL, 0, NULL);
762 	else if(!strcmp(name,"PersonalFragmentsDeleteGroup")) deleteGroupeDlg(NULL, 0, NULL);
763 	else if(!strcmp(name,"PersonalFragmentsAddMolecule"))  addFragmentDlg(NULL, 0, NULL);
764 	else if(!strcmp(name,"PersonalFragmentsRemoveFragment")) deleteFragmentDlg(NULL, 0, NULL);
765 	else if(!strcmp(name, "RenderDefaultStick")) factor_stick_default(NULL, NULL);
766 	else if(!strcmp(name, "RenderDefaultBall"))factor_ball_default(NULL, NULL);
767 	else if(!strcmp(name, "RenderDefaultZoom")) factor_default(NULL, NULL);
768 	else if(!strcmp(name, "RenderDefaultDipole")) factor_dipole_default(NULL, NULL);
769 	else if(!strcmp(name, "RenderDefaultCenter")) SetOperation(NULL, CENTER);
770 	else if(!strcmp(name, "RenderDefaultAll")) factor_all_default(NULL, NULL);
771 	else if(!strcmp(name, "RenderBackgroundColorBlack")) set_back_color_black();
772 	else if(!strcmp(name, "RenderBackgroundColorOther")) open_color_dlg( NULL, NULL);
773 	else if(!strcmp(name,"RenderHideHydrogenAtoms")) RenderHAtoms(NULL, FALSE);
774 	else if(!strcmp(name, "RenderHideSelectedAtoms")) hide_selected_atoms();
775 	else if(!strcmp(name, "RenderHideNotSelectedAtoms")) hide_not_selected_atoms();
776 	else if(!strcmp(name, "RenderShowAllAtoms")) show_all_atoms();
777 	else if(!strcmp(name, "RenderShowHydrogenAtoms")) show_hydrogen_atoms();
778 	else if(!strcmp(name, "RenderOptimal")) set_optimal_geom_view();
779 
780 	else if(!strcmp(name, "SymmetryRotationalConstantes")) create_symmetry_window( NULL, 0);
781 	else if(!strcmp(name, "SymmetryGroupSymmetry")) get_standard_orientation_with_reduction(NULL, 0);
782 	else if(!strcmp(name, "SymmetryGroupSymmetrize")) get_standard_orientation_with_symmetrization(NULL, 0);
783 	else if(!strcmp(name, "SymmetryAbelianGroup")) get_abelian_orientation_with_reduction(NULL, 0);
784 	else if(!strcmp(name, "SymmetrySetTolerance")) create_tolerance_window (NULL, 0);
785 	else if(!strcmp(name, "SetOriginToCenterOfMolecule")) SetOriginAtCenter(NULL, 0, NULL);
786 	else if(!strcmp(name, "SetOriginToCenterOfSelectedAtoms")) set_origin_to_center_of_fragment();
787 	else if(!strcmp(name, "SetXYZToPAX")) set_xyz_to_principal_axes_of_selected_atoms(NULL,0, NULL);
788 	else if(!strcmp(name, "SetXYZToPAZ")) set_xyz_to_principal_axes_of_selected_atoms(NULL,1, NULL);
789 	else if(!strcmp(name, "SetXYZToStandardOrientaion")) set_xyz_to_standard_orientation_all();
790 	else if(!strcmp(name, "SetXYZToStandardOrientaionSelectedAndNotSelected")) set_xyz_to_standard_orientation_selected_and_not_selected_atoms();
791 	else if(!strcmp(name, "SetSelectedAtomsToHighLayer")) set_layer_of_selected_atoms(HIGH_LAYER);
792 	else if(!strcmp(name, "SetSelectedAtomsToMediumLayer")) set_layer_of_selected_atoms(MEDIUM_LAYER);
793 	else if(!strcmp(name, "SetSelectedAtomsToLowLayer")) set_layer_of_selected_atoms(LOW_LAYER);
794 	else if(!strcmp(name, "SetSelectedAtomsToFixed")) set_fix_selected_atoms();
795 	else if(!strcmp(name, "SetSelectedAtomsToVariable")) set_variable_selected_atoms();
796 	else if(!strcmp(name, "SetMMTypeOfselectedAtoms")) setMMTypeOfselectedAtomsDlg();
797 	else if(!strcmp(name, "SetPDBTypeOfselectedAtoms")) setPDBTypeOfselectedAtomsDlg();
798 	else if(!strcmp(name, "SetResidueNameOfselectedAtoms")) setResidueNameOfselectedAtomsDlg();
799 	else if(!strcmp(name, "SetSymbolOfselectedAtoms")) setSymbolOfselectedAtomsDlg();
800 	else if(!strcmp(name, "SetChargeOfselectedAtoms")) setChargeOfselectedAtomsDlg();
801 	else if(!strcmp(name, "scaleChargesOfSelectedAtoms")) scaleChargesOfSelectedAtomsDlg();
802 	else if(!strcmp(name, "InsertAFragment")) activate_insert_fragment();
803 	else if(!strcmp(name, "AddMaxHydrogens")) addMaxHydrogens();
804 	else if(!strcmp(name, "AddHydrogens")) addHydrogens();
805 	else if(!strcmp(name, "AddHydrogensTpl")) addHydrogensTpl();
806 	else if(!strcmp(name, "AddOneHydrogen")) addOneHydrogen();
807 	else if(!strcmp(name, "SetDipole")) set_dipole_dialog();
808 	else if(!strcmp(name, "ScaleCell")) scale_cell_dialog();
809 	else if(!strcmp(name, "SetDipoleFormCharges")) set_dipole_from_charges();
810 	else if(!strcmp(name, "ComputeDipoleFormCharges")) compute_dipole_from_charges();
811 	else if(!strcmp(name, "ComputeIsotopeDistribution")) createIstopeDistributionCalculationFromDrawGeom();
812 	else if(!strcmp(name, "ComputeTotalCharge")) compute_total_charge();
813 	else if(!strcmp(name, "ComputeVolumeMolecule")) compute_volume_molecule();
814 	else if(!strcmp(name, "ComputeChargeForResidues")) compute_charge_by_residue();
815 	else if(!strcmp(name, "ComputeChargeOfSelectedsAtoms")) compute_charge_of_selected_atoms();
816 	else if(!strcmp(name, "SetHydrogenBonds"))set_HBonds_dialog_geom(NULL, 0);
817 	else if(!strcmp(name, "SetPropertiesOfAtoms")) create_table_prop();
818 	else if(!strcmp(name, "SetMolecularMechanicsParameters")) setMMParamatersDlg();
819 	else if(!strcmp(name, "SetPDBTemplate")) setPDBTemplateDlg();
820 	else if(!strcmp(name, "SetChargesUsingPDBTemplate")) setMMTypesCharges(NULL, 0, NULL);
821 	else if(!strcmp(name, "SetAtomTypesUsingPDBTemplate")) setMMTypesCharges(NULL, 1, NULL);
822 	else if(!strcmp(name, "SetAtomTypeAndChargeUsingPDBTemplate")) setMMTypesCharges(NULL, 2, NULL);
823 	else if(!strcmp(name, "SetAtomTypeCalcul")) setMMTypesCharges(NULL, 4, NULL);
824 	else if(!strcmp(name, "SetChargesToZero")) setMMTypesCharges(NULL, 3, NULL);
825 
826 #ifdef DRAWGEOMGL
827 	else if(!strcmp(name, "SetCamera")) set_camera_drawgeom();
828 	else if(!strcmp(name, "SetLightPositions")) set_light_positions_drawgeom("Light positions");
829 	else if(!strcmp(name, "SetXYZAxesProperties")) set_axes_geom_dialog();
830 #endif
831 
832 	else if(!strcmp(name, "SetPovrayBackground")) set_povray_options_geom(NULL,0);
833 	else if(!strcmp(name, "SetAtomToInsert")) select_atom();
834 	else if(!strcmp(name, "ExportPostscript")) export_geometry_dlg("ps");
835 	else if(!strcmp(name, "ExportEPS")) export_geometry_dlg("eps");
836 	else if(!strcmp(name, "ExportPovray")) exportPOVGeomDlg(GeomDlg);
837 	else if(!strcmp(name, "ExportPDF")) export_geometry_dlg("pdf");
838 	else if(!strcmp(name, "ExportSVG")) export_geometry_dlg("svg");
839 	else if(!strcmp(name, "ScreenCaptureJPG"))
840 	{
841  		GtkWidget* chooser = file_chooser_save(save_geometry_jpeg_file,_("Save image in jpeg file format"),GABEDIT_TYPEFILE_JPEG,GABEDIT_TYPEWIN_GEOM);
842 		/* fit_windows_position(GeomDlg, chooser);*/
843 	}
844 	else if(!strcmp(name, "ScreenCapturePPM"))
845 	{
846  		GtkWidget* chooser = file_chooser_save(save_geometry_ppm_file,_("Save image in ppm file format"),GABEDIT_TYPEFILE_PPM,GABEDIT_TYPEWIN_GEOM);
847 		/* fit_windows_position(GeomDlg, chooser);*/
848 	}
849 	else if(!strcmp(name, "ScreenCaptureBMP"))
850 	{
851  		GtkWidget* chooser = file_chooser_save(save_geometry_bmp_file,_("Save image in bmp file format"),GABEDIT_TYPEFILE_BMP,GABEDIT_TYPEWIN_GEOM);
852 		/* fit_windows_position(GeomDlg, chooser);*/
853 	}
854 	else if(!strcmp(name, "ScreenCapturePNG"))
855 	{
856  		GtkWidget* chooser = file_chooser_save(save_geometry_png_file,_("Save image in png file format"),GABEDIT_TYPEFILE_PNG,GABEDIT_TYPEWIN_GEOM);
857 		/* fit_windows_position(GeomDlg, chooser);*/
858 	}
859 	else if(!strcmp(name, "ScreenCaptureTIF"))
860 	{
861  		GtkWidget* chooser = file_chooser_save(save_geometry_tiff_file,_("Save image in tif file format"),GABEDIT_TYPEFILE_TIF,GABEDIT_TYPEWIN_GEOM);
862 		/* fit_windows_position(GeomDlg, chooser);*/
863 	}
864 	else if(!strcmp(name, "ScreenCapturePS"))
865 	{
866  		GtkWidget* chooser = file_chooser_save(save_geometry_ps_file,_("Save image in ps file format"),GABEDIT_TYPEFILE_PS,GABEDIT_TYPEWIN_GEOM);
867 		/* fit_windows_position(GeomDlg, chooser);*/
868 	}
869 	else if(!strcmp(name, "ScreenCaptureCilpBoard"))
870 	{
871 		copy_screen_geom_clipboard();
872 	}
873 
874 	else if(!strcmp(name, "MolecularMechanicsEnergy"))
875 	{
876 		MolecularMechanicsEnergyDlg();
877 		messageAmberTypesDefine();
878 	}
879 	else if(!strcmp(name, "MolecularMechanicsOptimization"))
880 	{
881 		MolecularMechanicsMinimizeDlg();
882 		messageAmberTypesDefine();
883 	}
884 	else if(!strcmp(name, "MolecularMechanicsDynamics"))
885 	{
886 		MolecularMechanicsDynamicsDlg();
887 		messageAmberTypesDefine();
888 	}
889 	else if(!strcmp(name, "MolecularMechanicsDynamicsConfo"))
890 	{
891 		MolecularMechanicsDynamicsConfoDlg();
892 		messageAmberTypesDefine();
893 	}
894 	else if(!strcmp(name, "SemiEmpiricalMD"))
895 	{
896 		semiEmpiricalMolecularDynamicsDlg();
897 	}
898 	else if(!strcmp(name, "SemiEmpiricalMDConfo"))
899 	{
900 		semiEmpiricalMolecularDynamicsConfoDlg();
901 	}
902 	else if(!strcmp(name, "SemiEmpiricalEnergyFireFlyAM1"))
903 	{
904 		semiEmpiricalDlg("AM1FireFlyEnergy");
905 	}
906 	else if(!strcmp(name, "SemiEmpiricalEnergyMopacPM6DH2"))
907 	{
908 		semiEmpiricalDlg("PM6DH2MopacEnergy");
909 	}
910 	else if(!strcmp(name, "SemiEmpiricalEnergyMopacPM6DH+"))
911 	{
912 		semiEmpiricalDlg("PM6DH+MopacEnergy");
913 	}
914 	else if(!strcmp(name, "SemiEmpiricalEnergyMopacPM6"))
915 	{
916 		semiEmpiricalDlg("PM6MopacEnergy");
917 	}
918 	else if(!strcmp(name, "SemiEmpiricalEnergyMopacAM1"))
919 	{
920 		semiEmpiricalDlg("AM1MopacEnergy");
921 	}
922 	else if(!strcmp(name, "SemiEmpiricalOptimizationFireFlyAM1"))
923 	{
924 		semiEmpiricalDlg("AM1FireFlyOptimize");
925 	}
926 	else if(!strcmp(name, "SemiEmpiricalOptimizationMopacPM6DH2"))
927 	{
928 		semiEmpiricalDlg("PM6DH2MopacOptimize");
929 	}
930 	else if(!strcmp(name, "SemiEmpiricalOptimizationMopacPM6DH+"))
931 	{
932 		semiEmpiricalDlg("PM6DH+MopacOptimize");
933 	}
934 	else if(!strcmp(name, "SemiEmpiricalOptimizationMopacPM6"))
935 	{
936 		semiEmpiricalDlg("PM6MopacOptimize");
937 	}
938 	else if(!strcmp(name, "SemiEmpiricalESPMopacPM6DH2"))
939 	{
940 		semiEmpiricalDlg("PM6DH2MopacESP");
941 	}
942 	else if(!strcmp(name, "SemiEmpiricalESPMopacPM6DH+"))
943 	{
944 		semiEmpiricalDlg("PM6DH+MopacESP");
945 	}
946 	else if(!strcmp(name, "SemiEmpiricalESPMopacPM6"))
947 	{
948 		semiEmpiricalDlg("PM6MopacESP");
949 	}
950 	else if(!strcmp(name, "SemiEmpiricalOptimizationMopac"))
951 	{
952 		semiEmpiricalDlg("MopacOptimize");
953 	}
954 	else if(!strcmp(name, "SemiEmpiricalOptimizationMopacSparkle"))
955 	{
956 		semiEmpiricalDlg("MopacOptimizeSparkle");
957 	}
958 	else if(!strcmp(name, "SemiEmpiricalESPMopac"))
959 	{
960 		semiEmpiricalDlg("MopacESP");
961 	}
962 	else if(!strcmp(name, "SemiEmpiricalScanMopacPM6DH2"))
963 	{
964 		semiEmpiricalDlg("MopacScanPM6DH2");
965 	}
966 	else if(!strcmp(name, "SemiEmpiricalScanMopacPM6DH+"))
967 	{
968 		semiEmpiricalDlg("MopacScanPM6DH+");
969 	}
970 	else if(!strcmp(name, "SemiEmpiricalScanMopacPM6"))
971 	{
972 		semiEmpiricalDlg("MopacScanPM6");
973 	}
974 	else if(!strcmp(name, "SemiEmpiricalScanMopacAM1"))
975 	{
976 		semiEmpiricalDlg("MopacScanAM1");
977 	}
978 	else if(!strcmp(name, "SemiEmpiricalScanMopac"))
979 	{
980 		semiEmpiricalDlg("MopacScan");
981 	}
982 	else if(!strcmp(name, "SemiEmpiricalEnergyMopac"))
983 	{
984 		semiEmpiricalDlg("MopacEnergy");
985 	}
986 	else if(!strcmp(name, "SemiEmpiricalOptimizationMopacAM1"))
987 	{
988 		semiEmpiricalDlg("AM1MopacOptimize");
989 	}
990 	else if(!strcmp(name, "SemiEmpiricalESPMopacAM1"))
991 	{
992 		semiEmpiricalDlg("AM1MopacESP");
993 	}
994 	else if(!strcmp(name, "SemiEmpiricalEnergyOrca"))
995 	{
996 		semiEmpiricalDlg("OrcaEnergy");
997 	}
998 	else if(!strcmp(name, "SemiEmpiricalOptimizationOrca"))
999 	{
1000 		semiEmpiricalDlg("OrcaOptimize");
1001 	}
1002 	else if(!strcmp(name, "SemiEmpiricalEnergyOpenBabel"))
1003 	{
1004 		semiEmpiricalDlg("OpenBabelEnergy");
1005 	}
1006 	else if(!strcmp(name, "SemiEmpiricalOptimizationOpenBabel"))
1007 	{
1008 		semiEmpiricalDlg("OpenBabelOptimize");
1009 	}
1010 	else if(!strcmp(name, "SemiEmpiricalEnergyGeneric"))
1011 	{
1012 		semiEmpiricalDlg("GenericEnergy");
1013 	}
1014 	else if(!strcmp(name, "SemiEmpiricalOptimizationGeneric"))
1015 	{
1016 		semiEmpiricalDlg("GenericOptimize");
1017 	}
1018 
1019 
1020 	else if(!strcmp(name, "Close")) destroy_drawing_and_children(NULL, 0);
1021 }
1022 /*--------------------------------------------------------------------*/
1023 static GtkActionEntry gtkActionEntries[] =
1024 {
1025 	{"Read", NULL, N_("_Read")},
1026 	{"ReadAuto", NULL, N_("_Any file"), NULL, "Read a file", G_CALLBACK (activate_action) },
1027 	{"ReadXYZ", NULL, N_("_XYZ file"), NULL, "Read a XYZ file", G_CALLBACK (activate_action) },
1028 	{"ReadMol2", NULL, N_("_Mol2 file"), NULL, "Read a Mol2 file", G_CALLBACK (activate_action) },
1029 	{"ReadTinker", NULL, N_("_Tinker file"), NULL, "Read a Tinker file", G_CALLBACK (activate_action) },
1030 	{"ReadPDB", GABEDIT_STOCK_PDB, N_("_PDB file"), NULL, "Read a PDB file", G_CALLBACK (activate_action) },
1031 	{"ReadHyperchem", NULL, N_("_Hyperchem file"), NULL, "Read a Hyperchem file", G_CALLBACK (activate_action) },
1032 	{"ReadAIMAll", NULL, N_("_AIMAll file"), NULL, "Read a AIMAll file", G_CALLBACK (activate_action) },
1033 	{"ReadMol", NULL, N_("_Mol file"), NULL, "Read a Mol file", G_CALLBACK (activate_action) },
1034 	{"ReadGabedit", GABEDIT_STOCK_GABEDIT, N_("_Gabedit file"), NULL, "Read a Gabedit file", G_CALLBACK (activate_action) },
1035 	{"ReadPOSCAR", NULL, N_("_POSCAR file"), NULL, "Read a POSCAR file", G_CALLBACK (activate_action) },
1036 	{"ReadWFX", NULL, N_("_WFX file"), NULL, "Read a WFX file", G_CALLBACK (activate_action) },
1037 	{"ReadCIF", NULL, N_("_CIF file"), NULL, "Read a cif file", G_CALLBACK (activate_action) },
1038 	{"ReadCIFNoSym", NULL, N_("_CIF file without symmetry"), NULL, "Read a cif file without apply symmetry operators", G_CALLBACK (activate_action) },
1039 	{"ReadGaussianZMat", GABEDIT_STOCK_GAUSSIAN, N_("_Gaussian Z-Matrix file"), NULL, "Read a Gaussian Z-Matrix file", G_CALLBACK (activate_action) },
1040 	{"ReadMopacZMat", GABEDIT_STOCK_MOPAC, N_("_Mopac Z-Matrix file"), NULL, "Read a Mopac Z-Matrix file", G_CALLBACK (activate_action) },
1041 
1042 	{"FireFly", GABEDIT_STOCK_FIREFLY, "_FireFly"},
1043 	{"ReadFireFlyFirst", GABEDIT_STOCK_FIREFLY, N_("F_irst geometry from a FireFly output file"), NULL, "Read the first geometry from a FireFly output file", G_CALLBACK (activate_action) },
1044 	{"ReadFireFlyLast", GABEDIT_STOCK_FIREFLY, N_("L_ast geometry from a FireFly output file"), NULL, "Read the last geometry from a FireFly output file", G_CALLBACK (activate_action) },
1045 
1046 	{"Dalton", GABEDIT_STOCK_DALTON, "_Dalton"},
1047 	{"ReadDaltonFirst", GABEDIT_STOCK_DALTON, N_("F_irst geometry from a Dalton output file"), NULL, "Read the first geometry from a Dalton output file", G_CALLBACK (activate_action) },
1048 	{"ReadDaltonLast", GABEDIT_STOCK_DALTON, N_("L_ast geometry from a Dalton output file"), NULL, "Read the last geometry from a Dalton output file", G_CALLBACK (activate_action) },
1049 
1050 	{"Gamess", GABEDIT_STOCK_GAMESS, "Ga_mess"},
1051 	{"ReadGamessFirst", GABEDIT_STOCK_GAMESS, N_("F_irst geometry from a Gamess output file"), NULL, "Read the first geometry from a Gamess output file", G_CALLBACK (activate_action) },
1052 	{"ReadGamessLast", GABEDIT_STOCK_GAMESS, N_("L_ast geometry from a Gamess output file"), NULL, "Read the last geometry from a Gamess output file", G_CALLBACK (activate_action) },
1053 
1054 	{"Turbomole", NULL, "_Turbomole"},
1055 	{"ReadTurbomoleFirst", NULL, N_("F_irst geometry from a Turbomole output file"), NULL, "Read the first geometry from a Turbomole output file", G_CALLBACK (activate_action) },
1056 	{"ReadTurbomoleLast", NULL, N_("L_ast geometry from a Turbomole output file"), NULL, "Read the last geometry from a Turbomole output file", G_CALLBACK (activate_action) },
1057 
1058 	{"Gaussian", GABEDIT_STOCK_GAUSSIAN, "_Gaussian"},
1059 	{"ReadGaussianInput", GABEDIT_STOCK_GAUSSIAN, N_("_Gaussian Input file"), NULL, "Read a Gaussian Input file", G_CALLBACK (activate_action) },
1060 	{"ReadGaussianFirst", GABEDIT_STOCK_GAUSSIAN, N_("F_irst geometry from a Gaussian output file"), NULL, "Read the first geometry from a Gaussian output file", G_CALLBACK (activate_action) },
1061 	{"ReadGaussianLast", GABEDIT_STOCK_GAUSSIAN, N_("L_ast geometry from a Gaussian output file"), NULL, "Read the last geometry from a Gaussian output file", G_CALLBACK (activate_action) },
1062 	{"ReadGaussianFChk", GABEDIT_STOCK_GAUSSIAN, N_("Geometry from a Gaussian fchk file"), NULL, "Read  geometry from a Gaussian fchk file", G_CALLBACK (activate_action) },
1063 
1064 	{"Molcas", GABEDIT_STOCK_MOLCAS, "Mol_cas"},
1065 	{"ReadMolcasInput", GABEDIT_STOCK_MOLCAS, N_("Mol_cas Input file"), NULL, "Read a Molcas Input file", G_CALLBACK (activate_action) },
1066 	{"ReadMolcasFirst", GABEDIT_STOCK_MOLCAS, N_("F_irst geometry from a Molcas output file"), NULL, "Read the first geometry from a Molcas output file", G_CALLBACK (activate_action) },
1067 	{"ReadMolcasLast", GABEDIT_STOCK_MOLCAS, N_("L_ast geometry from a Molcas output file"), NULL, "Read the last geometry from a Molcas output file", G_CALLBACK (activate_action) },
1068 
1069 	{"Molpro", GABEDIT_STOCK_MOLPRO, "Mol_pro"},
1070 	{"ReadMolproInput", GABEDIT_STOCK_MOLPRO, N_("Mol_pro Input file"), NULL, "Read a Molpro Input file", G_CALLBACK (activate_action) },
1071 	{"ReadMolproFirst", GABEDIT_STOCK_MOLPRO, N_("F_irst geometry from a Molpro output file"), NULL, "Read the first geometry from a Molpro output file", G_CALLBACK (activate_action) },
1072 	{"ReadMolproLast", GABEDIT_STOCK_MOLPRO, N_("L_ast geometry from a Molpro output file"), NULL, "Read the last geometry from a Molpro output file", G_CALLBACK (activate_action) },
1073 
1074 	{"Mopac", GABEDIT_STOCK_MOPAC, "_Mopac"},
1075 	{"ReadMopacInput", GABEDIT_STOCK_MOPAC, N_("_Mopac Input file"), NULL, "Read a Mopac Input file", G_CALLBACK (activate_action) },
1076 	{"ReadMopacFirst", GABEDIT_STOCK_MOPAC, N_("F_irst geometry from a Mopac output file"), NULL, "Read the first geometry from a Mopac output file", G_CALLBACK (activate_action) },
1077 	{"ReadMopacLast", GABEDIT_STOCK_MOPAC, N_("L_ast geometry from a Mopac output file"), NULL, "Read the last geometry from a Mopac output file", G_CALLBACK (activate_action) },
1078 	{"ReadMopacAux", GABEDIT_STOCK_MOPAC, N_("L_ast geometry from a Mopac aux file"), NULL, "Read the last geometry from a Mopac aux file", G_CALLBACK (activate_action) },
1079 	{"ReadMopacScan", GABEDIT_STOCK_MOPAC, N_("Geometries from a Mopac _scan output file"), NULL, "Geometries from a Mopac scan output file", G_CALLBACK (activate_action) },
1080 	{"ReadMopacIRC", GABEDIT_STOCK_MOPAC, N_("Geometries from a Mopac _IRC output file"), NULL, "Geometries from a Mopac IRC output file", G_CALLBACK (activate_action) },
1081 
1082 	{"MPQC", GABEDIT_STOCK_MPQC, "MP_QC"},
1083 	{"ReadMPQCInput", GABEDIT_STOCK_MPQC, N_("MP_QC Input file"), NULL, "Read a MPQC Input file", G_CALLBACK (activate_action) },
1084 	{"ReadMPQCFirst", GABEDIT_STOCK_MPQC, N_("F_irst geometry from a MPQC output file"), NULL, "Read the first geometry from a MPQC output file", G_CALLBACK (activate_action) },
1085 	{"ReadMPQCLast", GABEDIT_STOCK_MPQC, N_("L_ast geometry from a MPQC output file"), NULL, "Read the last geometry from a MPQC output file", G_CALLBACK (activate_action) },
1086 
1087 	{"Orca", GABEDIT_STOCK_ORCA, "_Orca"},
1088 	{"ReadOrcaFirst", GABEDIT_STOCK_ORCA, N_("F_irst geometry from a Orca output file"), NULL, "Read the first geometry from a Orca output file", G_CALLBACK (activate_action) },
1089 	{"ReadOrcaLast", GABEDIT_STOCK_ORCA, N_("L_ast geometry from a Orca output file"), NULL, "Read the last geometry from a Orca output file", G_CALLBACK (activate_action) },
1090 
1091 	{"VASP", GABEDIT_STOCK_VASP, "_VASP"},
1092 	{"ReadVaspFirst", GABEDIT_STOCK_VASP, N_("F_irst geometry from a VASP output file"), NULL, "Read the first geometry from a VASP output file", G_CALLBACK (activate_action) },
1093 	{"ReadVaspLast", GABEDIT_STOCK_VASP, N_("L_ast geometry from a VASP output file"), NULL, "Read the last geometry from a VASP output file", G_CALLBACK (activate_action) },
1094 	{"ReadVaspXMLFirst", GABEDIT_STOCK_VASP, N_("F_irst geometry from a VASP xml file"), NULL, "Read the first geometry from a VASP xml file", G_CALLBACK (activate_action) },
1095 	{"ReadVaspXMLLast", GABEDIT_STOCK_VASP, N_("L_ast geometry from a VASP xml file"), NULL, "Read the last geometry from a VASP xml file", G_CALLBACK (activate_action) },
1096 
1097 
1098 	{"QChem", GABEDIT_STOCK_QCHEM, "Q-_Chem"},
1099 	{"ReadQChemFirst", GABEDIT_STOCK_QCHEM, N_("F_irst geometry from a Q-Chem output file"), NULL, "Read the first geometry from a Q-Chem output file", G_CALLBACK (activate_action) },
1100 	{"ReadQChemLast", GABEDIT_STOCK_QCHEM, N_("L_ast geometry from a Q-Chem output file"), NULL, "Read the last geometry from a Q-Chem output file", G_CALLBACK (activate_action) },
1101 
1102 	{"NWChem", GABEDIT_STOCK_NWCHEM, "_NWChem"},
1103 	{"ReadNWChemFirst", GABEDIT_STOCK_NWCHEM, N_("F_irst geometry from a NWChem output file"), NULL, "Read the first geometry from a NWChem output file", G_CALLBACK (activate_action) },
1104 	{"ReadNWChemLast", GABEDIT_STOCK_NWCHEM, N_("L_ast geometry from a NWChem output file"), NULL, "Read the last geometry from a NWChem output file", G_CALLBACK (activate_action) },
1105 
1106 	{"Psicode", GABEDIT_STOCK_PSICODE, "_Psicode"},
1107 	{"ReadPsicodeFirst", GABEDIT_STOCK_PSICODE, N_("F_irst geometry from a Psicode output file"), NULL, "Read the first geometry from a Psicode output file", G_CALLBACK (activate_action) },
1108 	{"ReadPsicodeLast", GABEDIT_STOCK_PSICODE, N_("L_ast geometry from a Psicode output file"), NULL, "Read the last geometry from a Psicode output file", G_CALLBACK (activate_action) },
1109 
1110 	{"ReadUsingOpenBabel", GABEDIT_STOCK_OPEN_BABEL, N_("_Other format (using open babel)"), NULL, "Other format (using open babel)", G_CALLBACK (activate_action) },
1111 
1112 	{"ReadGeomConv", NULL, N_("Geometries _Convergence")},
1113 	{"ReadGeomConvDalton", GABEDIT_STOCK_DALTON, N_("from a _Dalton output file"), NULL, "Read Geometries Convergence from a Dalton output file", G_CALLBACK (activate_action) },
1114 	{"ReadGeomConvGamess", GABEDIT_STOCK_GAMESS, N_("from a _Gamess output file"), NULL, "Read Geometries Convergence from a Gamess output file", G_CALLBACK (activate_action) },
1115 	{"ReadGeomConvFireFly", GABEDIT_STOCK_FIREFLY, N_("from a _FireFly output file"), NULL, "Read Geometries Convergence from a FireFly output file", G_CALLBACK (activate_action) },
1116 	{"ReadGeomIRCGamess", GABEDIT_STOCK_GAMESS, N_("from a _Gamess IRC file"), NULL, "Read Geometries from a Gamess IRC file", G_CALLBACK (activate_action) },
1117 	{"ReadGeomIRCFireFly", GABEDIT_STOCK_FIREFLY, N_("from a _FireFly IRC file"), NULL, "Read Geometries from a FireFly IRC file", G_CALLBACK (activate_action) },
1118 	{"ReadGeomConvGaussian", GABEDIT_STOCK_GAUSSIAN, N_("from a _Gaussian output file"), NULL, "Read Geometries Convergence from a Gaussian output file", G_CALLBACK (activate_action) },
1119 	{"ReadGeomConvMolpro", GABEDIT_STOCK_MOLPRO, N_("from a Mol_pro log file"), NULL, "Read Geometries Convergence from a Molpro log file", G_CALLBACK (activate_action) },
1120 	{"ReadGeomConvMopac", GABEDIT_STOCK_MOPAC, N_("from a _Mopac aux file"), NULL, "Read Geometries Convergence from a Mopac aux file", G_CALLBACK (activate_action) },
1121 	{"ReadGeomConvMPQC", GABEDIT_STOCK_MPQC, N_("from a MP_QC output file"), NULL, "Read Geometries Convergence from a MPQC output file", G_CALLBACK (activate_action) },
1122 	{"ReadGeomConvOrca", GABEDIT_STOCK_ORCA, N_("from a _Orca output file"), NULL, "Read Geometries Convergence from a Orca output file", G_CALLBACK (activate_action) },
1123 	{"ReadGeomConvVasp", GABEDIT_STOCK_VASP, N_("from a _VASP output file"), NULL, "Read Geometries Convergence from a VASP output file", G_CALLBACK (activate_action) },
1124 	{"ReadGeomConvVaspXML", GABEDIT_STOCK_VASP, N_("from a _VASP xml file"), NULL, "Read Geometries Convergence from a VASP xml file", G_CALLBACK (activate_action) },
1125 	{"ReadGeomConvNWChem", GABEDIT_STOCK_NWCHEM, N_("from a _NWChemoutput file"), NULL, "Read Geometries Convergence from a NWChem output file", G_CALLBACK (activate_action) },
1126 	{"ReadGeomConvPsicode", GABEDIT_STOCK_PSICODE, N_("from a _Psicodeoutput file"), NULL, "Read Geometries Convergence from a Psicode output file", G_CALLBACK (activate_action) },
1127 	{"ReadGeomConvQChem", GABEDIT_STOCK_QCHEM, N_("from a Q-_Chem output file"), NULL, "Read Geometries Convergence from a Q-Chem output file", G_CALLBACK (activate_action) },
1128 	{"ReadGeomConvGabedit", GABEDIT_STOCK_GABEDIT, N_("from a G_abedit file"), NULL, "Read Geometries Convergence from a Gabedit file", G_CALLBACK (activate_action) },
1129 	{"ReadGeomConvMolden", GABEDIT_STOCK_MOLDEN, N_("from a Mol_den file"), NULL, "Read Geometries Convergence from a Molden file", G_CALLBACK (activate_action) },
1130 	{"ReadGeomConvXYZ", NULL, N_("from a _XYZ file"), NULL, "Read several Geometries from a XYZ file", G_CALLBACK (activate_action) },
1131 
1132 	{"Edit", NULL, N_("_Edit")},
1133 	{"EditResetAllConnections", GABEDIT_STOCK_ADD_BOND, N_("_Reset all connections"), NULL, "Reset all connections", G_CALLBACK (activate_action) },
1134 	{"EditResetMultipleConnections", GABEDIT_STOCK_COPY, N_("_Reset multiple connections"), NULL, "Reset multiple connections", G_CALLBACK (activate_action) },
1135 
1136 	{"EditResetConnectionsBetweenSelectedAndNotSelectedAtoms", GABEDIT_STOCK_ADD_BOND, N_("_Reset connections between selected and not selected atoms"), NULL, "Reset connections between selected and not selected atoms", G_CALLBACK (activate_action) },
1137 	{"EditResetConnectionsBetweenSelectedAtoms", GABEDIT_STOCK_ADD_BOND, N_("_Reset connections between selected atoms"), NULL, "Reset connections between selected atoms", G_CALLBACK (activate_action) },
1138 
1139 	{"EditCopySelectedAtoms", GABEDIT_STOCK_COPY, N_("_Copy&Paste selected atoms"), NULL, "Copy&Paste selected atoms", G_CALLBACK (activate_action) },
1140 	{"EditDeleteHydrogenAtoms", GABEDIT_STOCK_CUT, N_("_Remove hydrogen atoms"), NULL, "Remove hydrogen atoms", G_CALLBACK (activate_action) },
1141 	{"EditDeleteSelectedAtoms", GABEDIT_STOCK_CUT, N_("Remove selected atoms"), NULL, "Remove selected atoms", G_CALLBACK (activate_action) },
1142 	{"EditMoveCenterOfSelectedAtomsToOrigin", GABEDIT_STOCK_MOVE_ATOM, N_("Move the center of selected atoms to origin"), NULL, "Move selected atoms to origin", G_CALLBACK (activate_action) },
1143 	{"EditAlignPrincipalAxesOfSelectedAtomsToXYZ", NULL, N_("_Align the principal axes selected atoms to XYZ"), NULL, "Align the principal axes of selected atoms to XYZ", G_CALLBACK (activate_action) },
1144 	{"EditAlignSelectedAndNotSelectedAtoms", NULL, N_("_Align selected and not selected atoms"), NULL, "Align selected and not selected atoms to XYZ", G_CALLBACK (activate_action) },
1145 	{"EditDeleteMolecule", GABEDIT_STOCK_CUT, N_("_Delete molecule"), NULL, "Delete molecule", G_CALLBACK (activate_action) },
1146 	{"EditOpenGeometryEditor", NULL, N_("_Open XYZ or GZMAT editor"), NULL, "Open XYZ or GZMAT editor", G_CALLBACK (activate_action) },
1147 	{"Selection", NULL, N_("_Selection")},
1148 	{"EditSelectAll", NULL, N_("Select _all atoms"), NULL, "Select all atoms", G_CALLBACK (activate_action) },
1149 	{"EditInvertSelection", NULL, N_("_Invert selection"), NULL, "Invert selection", G_CALLBACK (activate_action) },
1150 	{"EditUnSelectAll", NULL, N_("_Unselect all"), NULL, "Unselect all", G_CALLBACK (activate_action) },
1151 	{"EditSelectHighAtoms", NULL, N_("Select atoms with _high layer"), NULL, "Select atoms with high layer", G_CALLBACK (activate_action) },
1152 	{"EditSelectMediumAtoms", NULL, N_("Select atoms with _medium layer"), NULL, "Select atoms with medium layer", G_CALLBACK (activate_action) },
1153 	{"EditSelectLowAtoms", NULL, N_("Select atoms with _low layer"), NULL, "Select atoms with low layer", G_CALLBACK (activate_action) },
1154 	{"EditSelectFixedAtoms", NULL, N_("Select _freezing atoms during optimizations/MD"), NULL, "Select freezing atoms during optimizations/MD", G_CALLBACK (activate_action) },
1155 	{"EditSelectVariableAtoms", NULL, N_("Select _not freezing atoms during optimizations/MD"), NULL, "Select not freezing atoms during optimizations/MD", G_CALLBACK (activate_action) },
1156 	{"EditSelectFirstResidue", NULL, N_("Select the _first residue"), NULL, "Select the first residue", G_CALLBACK (activate_action) },
1157 	{"EditSelectLastResidue", NULL, N_("Select the _last residue"), NULL, "Select the last residue", G_CALLBACK (activate_action) },
1158 	{"EditSelectResidueByNumber", NULL, N_("Select redidue by number"), NULL, "Select residue by number", G_CALLBACK (activate_action) },
1159 	{"EditSelectResidueByName", NULL, N_("Select residues by name"), NULL, "Select residues by name", G_CALLBACK (activate_action) },
1160 	{"EditSelectAtomsByMMType", NULL, N_("Select atoms by MM type"), NULL, "Select atoms by MM type", G_CALLBACK (activate_action) },
1161 	{"EditSelectAtomsByPDBType", NULL, N_("Select atoms by PDB type"), NULL, "Select atoms by PDB type", G_CALLBACK (activate_action) },
1162 	{"EditSelectAtomsBySymbol", NULL, N_("Select atoms by symbol"), NULL, "Select atoms by symbol", G_CALLBACK (activate_action) },
1163 	{"EditSelectAtomsBySphere", NULL, N_("Select atoms by sphere"), NULL, "Select atoms by sphere", G_CALLBACK (activate_action) },
1164 	{"EditSelectAtomsByPositiveCharges", NULL, N_("Select atoms with positive charges"), NULL, "Select atoms with positive charges", G_CALLBACK (activate_action) },
1165 	{"EditSelectAtomsByNegativeCharges", NULL, N_("Select atoms with negative charges"), NULL, "Select atoms with negative charges", G_CALLBACK (activate_action) },
1166 	{"EditSelectAtomsMultiple", NULL, N_("Multiple select atoms"), NULL, "Multiple select atoms", G_CALLBACK (activate_action) },
1167 
1168 	{"SaveAs", NULL, N_("_Save as")},
1169 	{"SaveAsGabedit", GABEDIT_STOCK_GABEDIT, N_("_Gabedit file"), NULL, "Save geometry in a Gabedit file", G_CALLBACK (activate_action) },
1170 	{"SaveAsXYZ", NULL, N_("_XYZ file"), NULL, "Save geometry in a XYZ file", G_CALLBACK (activate_action) },
1171 	{"SaveAsMol2", NULL, N_("_Mol2 file"), NULL, "Save geometry in a Mol2 file", G_CALLBACK (activate_action) },
1172 	{"SaveAsMol", NULL, N_("_Mol file"), NULL, "Save geometry in a Mol file", G_CALLBACK (activate_action) },
1173 	{"SaveAsTinker", NULL, N_("_Tinker file"), NULL, "Save geometry in a Tinker file", G_CALLBACK (activate_action) },
1174 	{"SaveAsPDB", GABEDIT_STOCK_PDB, N_("_pdb file"), NULL, "Save geometry in a pdb file", G_CALLBACK (activate_action) },
1175 	{"SaveAsPOSCARCartn", NULL, N_("_POSCAR (Cartesian) file"), NULL, "Save geometry in a POSCAR file", G_CALLBACK (activate_action) },
1176 	{"SaveAsPOSCARDirect", NULL, N_("_POSCAR (Direct) file"), NULL, "Save geometry in a POSCAR file", G_CALLBACK (activate_action) },
1177 	{"SaveAsCIFAllAtoms", NULL, N_("_CIF file with all atoms"), NULL, "Save geometry in a CIF file", G_CALLBACK (activate_action) },
1178 	{"SaveAsCIF", NULL, N_("_CIF file with symmetry operators"), NULL, "Save geometry in a CIF file", G_CALLBACK (activate_action) },
1179 	{"SaveAsHyperchem", NULL, N_("_Hyperchem file"), NULL, "Save geometry in a Hyperchem file", G_CALLBACK (activate_action) },
1180 	{"SaveAsCChemI", NULL, N_("_CChemI file"), NULL, "Save geometry in a CChemI file", G_CALLBACK (activate_action) },
1181 	{"SaveAsMopacZMat", NULL, N_("_Mopac Zmatrix file"), NULL, "Save geometry in a Mopac Zmatrix file", G_CALLBACK (activate_action) },
1182 	{"SaveAsGaussianZMat", GABEDIT_STOCK_GAUSSIAN, N_("_Gaussian Zmatrix file"), NULL, "Save geometry in a Gaussian Zmatrix file", G_CALLBACK (activate_action) },
1183 	{"SaveUsingOpenBabel", GABEDIT_STOCK_OPEN_BABEL, N_("_Other format (using open babel)"), NULL, "Other format (using open babel)", G_CALLBACK (activate_action) },
1184 
1185 	{"Add", NULL, N_("_Add")},
1186 	{"PersonalFragments", NULL, N_("Personal _fragment")},
1187 	{"PersonalFragmentsNewGroup", NULL, N_("_New Group"), NULL, "New Group", G_CALLBACK (activate_action) },
1188 	{"PersonalFragmentsDeleteGroup", NULL, N_("_Delete a Group"), NULL, "Delete a Group", G_CALLBACK (activate_action) },
1189 	{"PersonalFragmentsAddMolecule", NULL, N_("_Add this molecule to personnal Fragments"), NULL, "Add this molecule to personnal Fragments", G_CALLBACK (activate_action) },
1190 	{"PersonalFragmentsRemoveFragment", NULL, N_("_Remove a Fragment"), NULL, "Remove a Fragment", G_CALLBACK (activate_action) },
1191 	{"InsertAFragment", NULL, N_("Add a _fragment"), NULL, "Add a fragment", G_CALLBACK (activate_action) },
1192 	{"AddMaxHydrogens", NULL, N_("Add _Max Hydrogens"), NULL, "Add Max Hydrogens", G_CALLBACK (activate_action) },
1193 	{"AddHydrogens", NULL, N_("Add _Hydrogens"), NULL, "Add Hydrogens", G_CALLBACK (activate_action) },
1194 	{"AddOneHydrogen", NULL, N_("Add _one Hydrogen"), NULL, "Add one Hydrogen", G_CALLBACK (activate_action) },
1195 	{"AddHydrogensTpl", NULL, N_("Add _Hydrogens using PDB template"), NULL, "Add Hydrogens using PDB template", G_CALLBACK (activate_action) },
1196 
1197 	{"Build", NULL, N_("_Build")},
1198 	{"BuildLinearMolecule", NULL, N_("_Linear Molecule"), NULL, "build a linear molecule", G_CALLBACK (activate_action) },
1199 	{"BuildRingMolecule", NULL, N_("_Ring Molecule"), NULL, "build a ring molecule", G_CALLBACK (activate_action) },
1200 	{"BuildMoleculeWithSymmetry", NULL, N_("_Molecule with a symmetry axis of rotation"), NULL, "build a molecule with a symmetry axis of rotation", G_CALLBACK (activate_action) },
1201 	{"BuildPolyPeptide", NULL, N_("Poly_Peptide"), NULL, "build a polypeptide", G_CALLBACK (activate_action) },
1202 	{"BuildPolySaccharide", NULL, N_("Poly_Saccharide"), NULL, "build a Polysaccharide", G_CALLBACK (activate_action) },
1203 	{"BuildPolyNucleicAcid", NULL, N_("Poly_Nucleic Acid"), NULL, "build a polynucleic acid", G_CALLBACK (activate_action) },
1204 	{"BuildNanoTube", NULL, N_("Nano_tube"), NULL, "nanotube", G_CALLBACK (activate_action) },
1205 
1206 #ifdef DRAWGEOMGL
1207 	{"Crystallography", NULL, N_("_Crystallography")},
1208 	{"StandardizeCellPrimitive", NULL, N_("_Standardize cell with reduction to primitive"), NULL, "Standardize Cell Primitive", G_CALLBACK (activate_action) },
1209 	{"StandardizeCellConv", NULL, N_("_Standardize conventional cell"), NULL, "Standardize Cell", G_CALLBACK (activate_action) },
1210 	{"WrapAtomsToCell", NULL, N_("_Wrap atoms to Cell"), NULL, "Wrap", G_CALLBACK (activate_action) },
1211 	{"PrototypeCrystal", NULL, N_("Get a _Prototype crystal"), NULL, "Prototype crystal", G_CALLBACK (activate_action) },
1212 	{"ComputeVolume", NULL, N_("Compute _volume of cell"), NULL, "Volume", G_CALLBACK (activate_action) },
1213 	{"ComputeSpaceGroupSym", NULL, N_("Get Space _Group symmetry"), NULL, "SpaceGroupe", G_CALLBACK (activate_action) },
1214 	{"ComputeSymmetryInfo", NULL, N_("Get _symmetry info"), NULL, "Symmetry Info", G_CALLBACK (activate_action) },
1215 	{"ComputeKPointsPath", NULL, N_("Get k-points for band structure calculation"), NULL, "kpoints path primitive", G_CALLBACK (activate_action) },
1216 	{"SetSymPrec", NULL, N_("Set symmetry precision"), NULL, "Set symprec", G_CALLBACK (activate_action) },
1217 	{"HelpCrystal", NULL, N_("Help & _references"), NULL, "Help", G_CALLBACK (activate_action) },
1218 
1219 	{"BuildCrystalsDeriv", NULL, "_Build"},
1220 	{"BuildSuperCellSimple", NULL, N_("_SuperCell (simple)"), NULL, "Super cell (simple) ", G_CALLBACK (activate_action) },
1221 	{"BuildSuperCell", NULL, N_("_SuperCell"), NULL, "Super cell ", G_CALLBACK (activate_action) },
1222 	{"BuildWulff", NULL, N_("Cluster using _Wulff construction"), NULL, "Wulff", G_CALLBACK (activate_action) },
1223 	{"BuildSlab", NULL, N_("_Slab"), NULL, "Slab", G_CALLBACK (activate_action) },
1224 	{"BuildCrystalGen", NULL, N_("_Crystal"), NULL, "build  crystal", G_CALLBACK (activate_action) },
1225 
1226 
1227 	{"Reduction", NULL, "_Reduction"},
1228 	{"ReductionNiggli", NULL, N_("Reduce to _Niggli cell"), NULL, "Niggli", G_CALLBACK (activate_action) },
1229 	{"ReductionDelaunay", NULL, N_("Reduction using _Delaunay method"), NULL, "Delaunay", G_CALLBACK (activate_action) },
1230 	{"ReductionPrimitive", NULL, N_("Reduction to _primitive"), NULL, "Primitive", G_CALLBACK (activate_action) },
1231 #endif
1232 
1233 	{"Operations", NULL, N_("_Operations")},
1234 	{"Labels", NULL, N_("_Labels")},
1235 	{"Render", NULL, N_("_Render")},
1236 	{"RenderDefault", NULL, N_("_Default")},
1237 	{"RenderDefaultStick", GABEDIT_STOCK_RENDER_STICK, N_("_Stick"), NULL, "default stick scale", G_CALLBACK (activate_action) },
1238 	{"RenderDefaultBall", GABEDIT_STOCK_RENDER_BALL_STICK, N_("_Ball"), NULL, "default ball scale", G_CALLBACK (activate_action) },
1239 	{"RenderDefaultZoom", GABEDIT_STOCK_ZOOM, N_("_Zoom"), NULL, "default zoom scale", G_CALLBACK (activate_action) },
1240 	{"RenderDefaultDipole", NULL, N_("_Dipole"), NULL, "default dipole scale", G_CALLBACK (activate_action) },
1241 	{"RenderDefaultCenter", NULL, N_("_Center"), NULL, "center of molecule on centre of screen", G_CALLBACK (activate_action) },
1242 	{"RenderDefaultAll", NULL, N_("_All"), NULL, "reset default parameters", G_CALLBACK (activate_action) },
1243 	{"RenderBackgroundColor", NULL, N_("_Background Color")},
1244 	{"RenderBackgroundColorBlack", NULL, N_("_Black"), NULL, "black background", G_CALLBACK (activate_action) },
1245 	{"RenderBackgroundColorOther", NULL, N_("_Other"), NULL, "reset the background color", G_CALLBACK (activate_action) },
1246 	{"RenderHideHydrogenAtoms", NULL, N_("Hide _hydrogen atoms"), NULL, "Hide hydrogen atoms", G_CALLBACK (activate_action) },
1247 	{"RenderHideNotSelectedAtoms", NULL, N_("Hide _not selected atoms"), NULL, "Hide not selected atoms", G_CALLBACK (activate_action) },
1248 	{"RenderHideSelectedAtoms", NULL, N_("Hide _selected atoms"), NULL, "Hide selected atoms", G_CALLBACK (activate_action) },
1249 	{"RenderShowHydrogenAtoms", NULL, N_("_Show hydrogen atoms"), NULL, "Show hydrogen atoms", G_CALLBACK (activate_action) },
1250 	{"RenderShowAllAtoms", NULL, N_("_Show all atoms"), NULL, "Show all atoms", G_CALLBACK (activate_action) },
1251 #ifdef DRAWGEOMGL
1252 	{"RenderLight",     NULL, N_("_Light")},
1253 #endif
1254 	{"RenderOptimal",  GABEDIT_STOCK_O, N_("_Optimal camera"), NULL, "optimal camera", G_CALLBACK (activate_action) },
1255 
1256 	{"Symmetry", NULL, N_("_Symmetry")},
1257 	{"SymmetryRotationalConstantes", NULL, N_("Rotational Constantes & Dipole at there principal axis"), NULL, "compute the rotational constantes &  the dipole at there principal axis", G_CALLBACK (activate_action) },
1258 	{"SymmetryGroupSymmetry", NULL, N_("_Group of symmetry & Geometry with reduce molecule to its basis set of atoms"), NULL, "compute the _Groupe symmetry and geometry with  reduce molecule to its basis set of atoms", G_CALLBACK (activate_action) },
1259 	{"SymmetryAbelianGroup", NULL, N_("_Abelian group & Geometry with  reduce molecule to its basis set of atoms"), NULL, "compute the _Abelian group and Geometry with reduce molecule to its basis set of atoms", G_CALLBACK (activate_action) },
1260 	{"SymmetryGroupSymmetrize", NULL, N_("_Symmetrize"), NULL, "compute the _Groupe symmetry and geometry with reduce symmetrization", G_CALLBACK (activate_action) },
1261 	{"SymmetrySetTolerance", NULL, N_("_Set tolerance parameters"), NULL, "Set tolerance parameters", G_CALLBACK (activate_action) },
1262 
1263 	{"Set", NULL, N_("_Set")},
1264 	{"SetOriginToCenterOfMolecule", NULL, N_("Set origin at _Center of molecule"), NULL, "Set origin at center of molecule", G_CALLBACK (activate_action) },
1265 	{"SetOriginToCenterOfSelectedAtoms", NULL, N_("Set origin at Center of _selected atoms"), NULL, "Set origin at center of selected atoms", G_CALLBACK (activate_action) },
1266 	{"SetXYZToPAX", NULL, N_("Set XYZ axes to the principal axes of selected atoms (_X = min inertia)"), NULL, "Set XYZ axes to the principal axes of selected atoms (X = min inertia)", G_CALLBACK (activate_action) },
1267 	{"SetXYZToPAZ", NULL, N_("Set XYZ axes to the principal axes of selected atoms (_Z = min inertia)"), NULL, "Set XYZ axes to the principal axes of selected atoms (Z axis = min inertia)", G_CALLBACK (activate_action) },
1268 	{"SetXYZToStandardOrientaion", NULL, N_("Set XYZ axes to the standard orientation"), NULL, "Set XYZ axes to standard orientation", G_CALLBACK (activate_action) },
1269 	{"SetXYZToStandardOrientaionSelectedAndNotSelected", NULL, N_("Align seletecd and not selected fragments"), NULL, "Align 2 fragments", G_CALLBACK (activate_action) },
1270 	{"SetSelectedAtomsToHighLayer", NULL, N_("Set selected atoms to _Hight layer"), NULL, "Set selected atoms to Hight layer", G_CALLBACK (activate_action) },
1271 	{"SetSelectedAtomsToMediumLayer", NULL, N_("Set selected atoms to _Medium layer"), NULL, "Set selected atoms to Medium layer", G_CALLBACK (activate_action) },
1272 	{"SetSelectedAtomsToLowLayer", NULL, N_("Set selected atoms to _Low layer"), NULL, "Set selected atoms to Low layer", G_CALLBACK (activate_action) },
1273 	{"SetSelectedAtomsToFixed", NULL, N_("Set selected atoms to _freeze during optimizations/MD"), NULL, "Set selected atoms to freeze during optimizations/MD", G_CALLBACK (activate_action) },
1274 	{"SetSelectedAtomsToVariable", NULL, N_("Set selected atoms to _not freeze during optimizations/MD"), NULL, "Set selected atoms to not freeze during optimizations/MD", G_CALLBACK (activate_action) },
1275 	{"SetMMTypeOfselectedAtoms", NULL, N_("Set the _MM type of selected atoms"), NULL, "Set the MM type of selected atoms", G_CALLBACK (activate_action) },
1276 	{"SetPDBTypeOfselectedAtoms", NULL, N_("Set the _PDB type of selected atoms"), NULL, "Set the PDB type of selected atoms", G_CALLBACK (activate_action) },
1277 	{"SetResidueNameOfselectedAtoms", NULL, N_("Set the Residue _Name of selected atoms"), NULL, "Set the Residue name of selected atoms", G_CALLBACK (activate_action) },
1278 	{"SetSymbolOfselectedAtoms", NULL, N_("Set the symbol of selected atoms"), NULL, "Set the symbol of selected atoms", G_CALLBACK (activate_action) },
1279 	{"SetChargeOfselectedAtoms", NULL, N_("Set the _Charge of selected atoms"), NULL, "Set the charge of selected atoms", G_CALLBACK (activate_action) },
1280 	{"scaleChargesOfSelectedAtoms", NULL, N_("scale the _Charge of selected atoms"), NULL, "scale the charge of selected atoms", G_CALLBACK (activate_action) },
1281 	{"SetDipole", NULL, N_("_Dipole"), NULL, "Set dipole", G_CALLBACK (activate_action) },
1282 	{"ScaleCell", NULL, N_("_Scale cell"), NULL, "Scale cell", G_CALLBACK (activate_action) },
1283 	{"SetDipoleFormCharges", NULL, N_("_Compute Dipole from charges"), NULL, "Compute dipole using charges", G_CALLBACK (activate_action) },
1284 	{"SetHydrogenBonds", NULL, N_("_Hydrogen bonds parameters"), NULL, "Set the hydrogen bonds parameters", G_CALLBACK (activate_action) },
1285 	{"SetPropertiesOfAtoms", NULL, N_("P_roperties of atoms"), NULL, "Set properties of atoms", G_CALLBACK (activate_action) },
1286 	{"SetMolecularMechanicsParameters", NULL, N_("_Molecular Mechanics Parameters"), NULL, "Set molecular mechanics parameters", G_CALLBACK (activate_action) },
1287 	{"SetPDBTemplate", NULL, N_("_PDB Template"), NULL, "Set PDB Template", G_CALLBACK (activate_action) },
1288 	{"SetChargesUsingPDBTemplate", NULL, N_("_Charges using PDB Template"), NULL, "Set charges using PDB Template", G_CALLBACK (activate_action) },
1289 	{"SetAtomTypesUsingPDBTemplate", NULL, N_("Atom _Types using PDB Template"), NULL, "Set atom types using PDB Template", G_CALLBACK (activate_action) },
1290 	{"SetAtomTypeAndChargeUsingPDBTemplate", NULL, N_("Atom Type&Charge using PDB Template"), NULL, "Set atom type and charge using PDB Template", G_CALLBACK (activate_action) },
1291 	{"SetAtomTypeCalcul", NULL, N_("Atom Types using connections types"), NULL, "Compute atom types using the types of connections", G_CALLBACK (activate_action) },
1292 	{"SetChargesToZero", NULL, N_("Charges to _zero"), NULL, "Set charges to zero", G_CALLBACK (activate_action) },
1293 	{"SetPovrayBackground", NULL, N_("_Povray background"), NULL, "Set povray background", G_CALLBACK (activate_action) },
1294 #ifdef DRAWGEOMGL
1295 	{"SetCamera", NULL, N_("_Camera"), NULL, "Set camera", G_CALLBACK (activate_action) },
1296 	{"SetLightPositions", NULL, N_("_Light position"), NULL, "Set light position", G_CALLBACK (activate_action) },
1297 	{"SetXYZAxesProperties", NULL, N_("_XYZ axes properties"), NULL, "Set axes properties", G_CALLBACK (activate_action) },
1298 #endif
1299 
1300 	{"SetAtomToInsert", GABEDIT_STOCK_ATOMTOINSERT, N_("Set _atom to insert"), NULL, "Set atom to insert", G_CALLBACK (activate_action) },
1301 
1302 	{"Export", NULL, N_("Ex_port")},
1303 	{"ExportPostscript", NULL, "P_ostscript", NULL, "create a postscript file", G_CALLBACK (activate_action) },
1304 	{"ExportEPS", NULL, "_Encapsuled Postscript", NULL, "create a Encapsuled Postscript file", G_CALLBACK (activate_action) },
1305 	{"ExportPovray", NULL, "Po_vray", NULL, "create a povray file", G_CALLBACK (activate_action) },
1306 	{"ExportPDF", NULL, "_PDF", NULL, "create a pdf file", G_CALLBACK (activate_action) },
1307 	{"ExportSVG", NULL, "_SVG", NULL, "create a svg file", G_CALLBACK (activate_action) },
1308 	{"Tools", NULL, N_("_Tools")},
1309 	{"ComputeTotalCharge", NULL, N_("_Compute total charge"), NULL, "Compute total charge", G_CALLBACK (activate_action) },
1310 	{"ComputeChargeForResidues", NULL, N_("Compute charge for _residues"), NULL, "Compute charge for residues", G_CALLBACK (activate_action) },
1311 	{"ComputeChargeOfSelectedsAtoms", NULL, N_("Compute charge of _selected atoms"), NULL, "Compute charge of selected atoms", G_CALLBACK (activate_action) },
1312 	{"ComputeDipoleFormCharges", NULL, N_("_Compute dipole from charges"), NULL, "Compute dipole from charges", G_CALLBACK (activate_action) },
1313 	{"ComputeIsotopeDistribution", NULL, N_("_Isotope distribution calculator"), NULL, "Isotope distribution calculator", G_CALLBACK (activate_action) },
1314 	{"ComputeVolumeMolecule", NULL, N_("_Compute volume of molecule"), NULL, "Compute volume of molecule", G_CALLBACK (activate_action) },
1315 
1316 	{"ScreenCapture", NULL, N_("Screen Ca_pture")},
1317 	{"ScreenCaptureJPG", NULL, N_("_JPG format"), NULL, "create a JPEG file", G_CALLBACK (activate_action) },
1318 	{"ScreenCapturePPM", NULL, N_("_PPM format"), NULL, "create a PPM file", G_CALLBACK (activate_action) },
1319 	{"ScreenCaptureBMP", NULL, N_("_BMP format"), NULL, "create a BMP file", G_CALLBACK (activate_action) },
1320 	{"ScreenCapturePNG", NULL, N_("_PNG format"), NULL, "create a PNG file", G_CALLBACK (activate_action) },
1321 	{"ScreenCaptureTIF", NULL, N_("_TIF format"), NULL, "create a TIF file", G_CALLBACK (activate_action) },
1322 	{"ScreenCapturePS", NULL, N_("_PS format"), NULL, "create a PS file", G_CALLBACK (activate_action) },
1323 	{"ScreenCaptureCilpBoard", NULL, N_("_Copy to clipboard"), NULL, "copy to clipboard", G_CALLBACK (activate_action) },
1324 
1325 	{"MolecularMechanics", NULL, N_("_Amber potential")},
1326 	{"MolecularMechanicsEnergy", NULL, N_("_Energy"), NULL, "compute the energy using the MM method", G_CALLBACK (activate_action) },
1327 	{"MolecularMechanicsOptimization", NULL, N_("_Optimization"), NULL, "optimize the geometry using the MM method", G_CALLBACK (activate_action) },
1328 	{"MolecularMechanicsDynamics", NULL, N_("Molecular _Dynamics"), NULL, "Molecular dynamics using the MM method", G_CALLBACK (activate_action) },
1329 	{"MolecularMechanicsDynamicsConfo", NULL, N_("Molecular _Dynamics Conformational search"), NULL, "Molecular dynamics conformational search using the MM method", G_CALLBACK (activate_action) },
1330 
1331 	{"SemiEmpirical", NULL, N_("(Semi-)_empirical")},
1332 	{"SemiEmpiricalEnergyFireFlyAM1", NULL, N_("FireFly AM1 _Energy"), NULL, "compute the energy using the AM1 method from FireFly", G_CALLBACK (activate_action) },
1333 	{"SemiEmpiricalOptimizationFireFlyAM1", NULL, N_("FireFly AM1 _Optimization"), NULL, "optimize the geometry using the AM1 method from FireFly", G_CALLBACK (activate_action) },
1334 
1335 	{"SemiEmpiricalEnergyMopac", NULL, N_("Mopac _Energy"), NULL, "compute the energy using Mopac", G_CALLBACK (activate_action) },
1336 	{"SemiEmpiricalOptimizationMopac", NULL, N_("Mopac _Optimization"), NULL, "optimize the geometry using Mopac", G_CALLBACK (activate_action) },
1337 	{"SemiEmpiricalOptimizationMopacSparkle", NULL, N_("Mopac _Sparkle Optimization"), NULL, "optimize the geometry of a lanthanide complex using Mopac", G_CALLBACK (activate_action) },
1338 	{"SemiEmpiricalESPMopac", NULL, N_("Mopac _ESP charges"), NULL, "ESP Charge using Mopac", G_CALLBACK (activate_action) },
1339 	{"SemiEmpiricalScanMopac", NULL, N_("Mopac _Reaction path"), NULL, "Mopac Scan calculation", G_CALLBACK (activate_action) },
1340 
1341 	{"SemiEmpiricalEnergyMopacPM6DH2", NULL, N_("Mopac PM6-DH2 _Energy"), NULL, "compute the energy using the PM6-DH2 method from Mopac", G_CALLBACK (activate_action) },
1342 	{"SemiEmpiricalEnergyMopacPM6DH+", NULL, N_("Mopac PM6-DH+ _Energy"), NULL, "compute the energy using the PM6-DH+ method from Mopac", G_CALLBACK (activate_action) },
1343 	{"SemiEmpiricalOptimizationMopacPM6DH2", NULL, N_("Mopac PM6-DH2 _Optimization"), NULL, "optimize the geometry using the PM6-DH2 method from Mopac", G_CALLBACK (activate_action) },
1344 	{"SemiEmpiricalOptimizationMopacPM6DH+", NULL, N_("Mopac PM6-DH+ _Optimization"), NULL, "optimize the geometry using the PM6-DH+ method from Mopac", G_CALLBACK (activate_action) },
1345 	{"SemiEmpiricalESPMopacPM6DH2", NULL, N_("Mopac PM6-DH2 _ESP charges"), NULL, "ESP Charge using the PM6-DH2 method from Mopac", G_CALLBACK (activate_action) },
1346 	{"SemiEmpiricalESPMopacPM6DH+", NULL, N_("Mopac PM6-DH+ _ESP charges"), NULL, "ESP Charge using the PM6-DH+ method from Mopac", G_CALLBACK (activate_action) },
1347 	{"SemiEmpiricalScanMopacPM6DH2", NULL, N_("Mopac PM6-DH2 _Reaction path"), NULL, "Reaction path using the PM6-DH2 method from Mopac", G_CALLBACK (activate_action) },
1348 	{"SemiEmpiricalScanMopacPM6DH+", NULL, N_("Mopac PM6-DH+ _Reaction path"), NULL, "Reaction path using the PM6-DH+ method from Mopac", G_CALLBACK (activate_action) },
1349 	{"SemiEmpiricalEnergyMopacPM6", NULL, N_("Mopac PM6 _Energy"), NULL, "compute the energy using the PM6 method from Mopac", G_CALLBACK (activate_action) },
1350 	{"SemiEmpiricalOptimizationMopacPM6", NULL, N_("Mopac PM6 _Optimization"), NULL, "optimize the geometry using the PM6 method from Mopac", G_CALLBACK (activate_action) },
1351 	{"SemiEmpiricalESPMopacPM6", NULL, N_("Mopac PM6 _ESP charges"), NULL, "ESP Charge using the PM6 method from Mopac", G_CALLBACK (activate_action) },
1352 	{"SemiEmpiricalScanMopacPM6", NULL, N_("Mopac PM6 _Reaction path"), NULL, "Reaction path using the PM6 method from Mopac", G_CALLBACK (activate_action) },
1353 	{"SemiEmpiricalEnergyMopacAM1", NULL, N_("Mopac AM1 _Energy"), NULL, "compute the energy using the AM1 method from Mopac", G_CALLBACK (activate_action) },
1354 	{"SemiEmpiricalOptimizationMopacAM1", NULL, N_("Mopac AM1 _Optimization"), NULL, "optimize the geometry using the AM1 method from Mopac", G_CALLBACK (activate_action) },
1355 	{"SemiEmpiricalESPMopacAM1", NULL, N_("Mopac AM1 _ESP charges"), NULL, "ESP Charge using the AM1 method from Mopac", G_CALLBACK (activate_action) },
1356 	{"SemiEmpiricalScanMopacAM1", NULL, N_("Mopac AM1 _Reaction path"), NULL, "Reaction path using the AM1 method from Mopac", G_CALLBACK (activate_action) },
1357 
1358 	{"SemiEmpiricalEnergyOrca", NULL, N_("Orca _Energy"), NULL, "compute the energy using Orca", G_CALLBACK (activate_action) },
1359 	{"SemiEmpiricalOptimizationOrca", NULL, N_("Orca _Optimization"), NULL, "optimize the geometry using Orca", G_CALLBACK (activate_action) },
1360 
1361 	{"SemiEmpiricalEnergyOpenBabel", NULL, N_("OpenBabel _Energy"), NULL, "compute the energy using OpenBabel", G_CALLBACK (activate_action) },
1362 	{"SemiEmpiricalOptimizationOpenBabel", NULL, N_("OpenBabel _Optimization"), NULL, "optimize the geometry using OpenBabel", G_CALLBACK (activate_action) },
1363 
1364 	{"SemiEmpiricalEnergyGeneric", NULL, N_("Generic _Energy"), NULL, "compute the energy using your own program", G_CALLBACK (activate_action) },
1365 	{"SemiEmpiricalOptimizationGeneric", NULL, N_("Generic _Optimization"), NULL, "optimize the geometry using your own program", G_CALLBACK (activate_action) },
1366 
1367 	{"SemiEmpiricalMD", NULL, N_("Molecular _Dynamics"), NULL, "Molecular dynamics using a semi-empirical method", G_CALLBACK (activate_action) },
1368 	{"SemiEmpiricalMDConfo", NULL, N_("Molecular _Dynamics Conformational search"), NULL, "Molecular dynamics conformational search using a semi-empirical  method", G_CALLBACK (activate_action) },
1369 
1370 
1371 	{"View", NULL, N_("_View")},
1372 
1373 	{"Close", GABEDIT_STOCK_CLOSE, N_("_Close"), NULL, "Close", G_CALLBACK (activate_action) },
1374 };
1375 static guint numberOfGtkActionEntries = G_N_ELEMENTS (gtkActionEntries);
1376 /********************************************************************************/
1377 /* XML description of the menus for the test app.  The parser understands
1378  * a subset of the Bonobo UI XML format, and uses GMarkup for parsing */
1379 static const gchar *uiMenuInfo =
1380 "  <popup name=\"MenuGeom\">\n"
1381 "    <separator name=\"sepMenuPopRead\" />\n"
1382 "    <menu name=\"Read\" action=\"Read\">\n"
1383 "      <menuitem name=\"ReadAuto\" action=\"ReadAuto\" />\n"
1384 "      <separator name=\"sepMenuReadAuto\" />\n"
1385 "      <menuitem name=\"ReadGabedit\" action=\"ReadGabedit\" />\n"
1386 "      <menuitem name=\"ReadXYZ\" action=\"ReadXYZ\" />\n"
1387 "      <menuitem name=\"ReadMol2\" action=\"ReadMol2\" />\n"
1388 "      <menuitem name=\"ReadMol\" action=\"ReadMol\" />\n"
1389 "      <menuitem name=\"ReadTinker\" action=\"ReadTinker\" />\n"
1390 "      <menuitem name=\"ReadPDB\" action=\"ReadPDB\" />\n"
1391 "      <menuitem name=\"ReadHyperchem\" action=\"ReadHyperchem\" />\n"
1392 "      <menuitem name=\"ReadPOSCAR\" action=\"ReadPOSCAR\" />\n"
1393 "      <menuitem name=\"ReadWFX\" action=\"ReadWFX\" />\n"
1394 "      <menuitem name=\"ReadCIF\" action=\"ReadCIF\" />\n"
1395 "      <menuitem name=\"ReadCIFNoSym\" action=\"ReadCIFNoSym\" />\n"
1396 "      <menuitem name=\"ReadAIMAll\" action=\"ReadAIMAll\" />\n"
1397 "      <separator name=\"sepMenuReadFireFly\" />\n"
1398 "      <menu name=\"FireFly\" action=\"FireFly\">\n"
1399 "        <menuitem name=\"ReadFireFlyFirst\" action=\"ReadFireFlyFirst\" />\n"
1400 "        <menuitem name=\"ReadFireFlyLast\" action=\"ReadFireFlyLast\" />\n"
1401 "      </menu>\n"
1402 "      <separator name=\"sepMenuReadDalton\" />\n"
1403 "      <menu name=\"Dalton\" action=\"Dalton\">\n"
1404 "        <menuitem name=\"ReadDaltonFirst\" action=\"ReadDaltonFirst\" />\n"
1405 "        <menuitem name=\"ReadDaltonLast\" action=\"ReadDaltonLast\" />\n"
1406 "      </menu>\n"
1407 "      <separator name=\"sepMenuReadGamess\" />\n"
1408 "      <menu name=\"Gamess\" action=\"Gamess\">\n"
1409 "        <menuitem name=\"ReadGamessFirst\" action=\"ReadGamessFirst\" />\n"
1410 "        <menuitem name=\"ReadGamessLast\" action=\"ReadGamessLast\" />\n"
1411 "      </menu>\n"
1412 "      <separator name=\"sepMenuReadGaussian\" />\n"
1413 "      <menu name=\"Gaussian\" action=\"Gaussian\">\n"
1414 "        <menuitem name=\"ReadGaussianInput\" action=\"ReadGaussianInput\" />\n"
1415 "        <menuitem name=\"ReadGaussianFirst\" action=\"ReadGaussianFirst\" />\n"
1416 "        <menuitem name=\"ReadGaussianLast\" action=\"ReadGaussianLast\" />\n"
1417 "        <menuitem name=\"ReadGaussianFChk\" action=\"ReadGaussianFChk\" />\n"
1418 "        <menuitem name=\"ReadGaussianZMat\" action=\"ReadGaussianZMat\" />\n"
1419 "      </menu>\n"
1420 "      <separator name=\"sepMenuReadMolcas\" />\n"
1421 "      <menu name=\"Molcas\" action=\"Molcas\">\n"
1422 "        <menuitem name=\"ReadMolcasInput\" action=\"ReadMolcasInput\" />\n"
1423 "        <menuitem name=\"ReadMolcasFirst\" action=\"ReadMolcasFirst\" />\n"
1424 "        <menuitem name=\"ReadMolcasLast\" action=\"ReadMolcasLast\" />\n"
1425 "      </menu>\n"
1426 "      <separator name=\"sepMenuReadMolpro\" />\n"
1427 "      <menu name=\"Molpro\" action=\"Molpro\">\n"
1428 "        <menuitem name=\"ReadMolproInput\" action=\"ReadMolproInput\" />\n"
1429 "        <menuitem name=\"ReadMolproFirst\" action=\"ReadMolproFirst\" />\n"
1430 "        <menuitem name=\"ReadMolproLast\" action=\"ReadMolproLast\" />\n"
1431 "      </menu>\n"
1432 "      <separator name=\"sepMenuReadMopac\" />\n"
1433 "      <menu name=\"Mopac\" action=\"Mopac\">\n"
1434 "        <menuitem name=\"ReadMopacInput\" action=\"ReadMopacInput\" />\n"
1435 "        <menuitem name=\"ReadMopacFirst\" action=\"ReadMopacFirst\" />\n"
1436 "        <menuitem name=\"ReadMopacLast\" action=\"ReadMopacLast\" />\n"
1437 "        <menuitem name=\"ReadMopacAux\" action=\"ReadMopacAux\" />\n"
1438 "        <menuitem name=\"ReadMopacScan\" action=\"ReadMopacScan\" />\n"
1439 "        <menuitem name=\"ReadMopacIRC\" action=\"ReadMopacIRC\" />\n"
1440 "        <menuitem name=\"ReadMopacZMat\" action=\"ReadMopacZMat\" />\n"
1441 "      </menu>\n"
1442 "      <separator name=\"sepMenuReadMPQC\" />\n"
1443 "      <menu name=\"MPQC\" action=\"MPQC\">\n"
1444 "        <menuitem name=\"ReadMPQCInput\" action=\"ReadMPQCInput\" />\n"
1445 "        <menuitem name=\"ReadMPQCFirst\" action=\"ReadMPQCFirst\" />\n"
1446 "        <menuitem name=\"ReadMPQCLast\" action=\"ReadMPQCLast\" />\n"
1447 "      </menu>\n"
1448 "      <separator name=\"sepMenuReadOrca\" />\n"
1449 "      <menu name=\"Orca\" action=\"Orca\">\n"
1450 "        <menuitem name=\"ReadOrcaFirst\" action=\"ReadOrcaFirst\" />\n"
1451 "        <menuitem name=\"ReadOrcaLast\" action=\"ReadOrcaLast\" />\n"
1452 "      </menu>\n"
1453 
1454 "      <separator name=\"sepMenuReadVasp\" />\n"
1455 "      <menu name=\"VASP\" action=\"VASP\">\n"
1456 "        <menuitem name=\"ReadVaspFirst\" action=\"ReadVaspFirst\" />\n"
1457 "        <menuitem name=\"ReadVaspLast\" action=\"ReadVaspLast\" />\n"
1458 "        <menuitem name=\"ReadVaspXMLFirst\" action=\"ReadVaspXMLFirst\" />\n"
1459 "        <menuitem name=\"ReadVaspXMLLast\" action=\"ReadVaspXMLLast\" />\n"
1460 "      </menu>\n"
1461 
1462 "      <separator name=\"sepMenuReadQChem\" />\n"
1463 "      <menu name=\"QChem\" action=\"QChem\">\n"
1464 "        <menuitem name=\"ReadQChemFirst\" action=\"ReadQChemFirst\" />\n"
1465 "        <menuitem name=\"ReadQChemLast\" action=\"ReadQChemLast\" />\n"
1466 "      </menu>\n"
1467 "      <separator name=\"sepMenuReadNWChem\" />\n"
1468 "      <menu name=\"NWChem\" action=\"NWChem\">\n"
1469 "        <menuitem name=\"ReadNWChemFirst\" action=\"ReadNWChemFirst\" />\n"
1470 "        <menuitem name=\"ReadNWChemLast\" action=\"ReadNWChemLast\" />\n"
1471 "      </menu>\n"
1472 "      <separator name=\"sepMenuReadPsicode\" />\n"
1473 "      <menu name=\"Psicode\" action=\"Psicode\">\n"
1474 "        <menuitem name=\"ReadPsicodeFirst\" action=\"ReadPsicodeFirst\" />\n"
1475 "        <menuitem name=\"ReadPsicodeLast\" action=\"ReadPsicodeLast\" />\n"
1476 "      </menu>\n"
1477 "      <separator name=\"sepMenuReadTurbomole\" />\n"
1478 "      <menu name=\"Turbomole\" action=\"Turbomole\">\n"
1479 "        <menuitem name=\"ReadTurbomoleFirst\" action=\"ReadTurbomoleFirst\" />\n"
1480 "        <menuitem name=\"ReadTurbomoleLast\" action=\"ReadTurbomoleLast\" />\n"
1481 "      </menu>\n"
1482 "      <separator name=\"sepMenuReadOpenBabel\" />\n"
1483 "      <menuitem name=\"ReadUsingOpenBabel\" action=\"ReadUsingOpenBabel\" />\n"
1484 "      <separator name=\"sepMenuReadGeomConv\" />\n"
1485 "      <menu name=\"ReadGeomConv\" action=\"ReadGeomConv\">\n"
1486 "        <menuitem name=\"ReadGeomConvFireFly\" action=\"ReadGeomConvFireFly\" />\n"
1487 "        <menuitem name=\"ReadGeomConvDalton\" action=\"ReadGeomConvDalton\" />\n"
1488 "        <menuitem name=\"ReadGeomConvGamess\" action=\"ReadGeomConvGamess\" />\n"
1489 "        <menuitem name=\"ReadGeomConvGaussian\" action=\"ReadGeomConvGaussian\" />\n"
1490 "        <menuitem name=\"ReadGeomConvMolpro\" action=\"ReadGeomConvMolpro\" />\n"
1491 "        <menuitem name=\"ReadGeomConvMopac\" action=\"ReadGeomConvMopac\" />\n"
1492 "        <menuitem name=\"ReadGeomConvMPQC\" action=\"ReadGeomConvMPQC\" />\n"
1493 "        <menuitem name=\"ReadGeomConvOrca\" action=\"ReadGeomConvOrca\" />\n"
1494 "        <menuitem name=\"ReadGeomConvVasp\" action=\"ReadGeomConvVasp\" />\n"
1495 "        <menuitem name=\"ReadGeomConvVaspXML\" action=\"ReadGeomConvVaspXML\" />\n"
1496 "        <menuitem name=\"ReadGeomConvNWChem\" action=\"ReadGeomConvNWChem\" />\n"
1497 "        <menuitem name=\"ReadGeomConvPsicode\" action=\"ReadGeomConvPsicode\" />\n"
1498 "        <menuitem name=\"ReadGeomConvQChem\" action=\"ReadGeomConvQChem\" />\n"
1499 "        <menuitem name=\"ReadGeomConvGabedit\" action=\"ReadGeomConvGabedit\" />\n"
1500 "        <menuitem name=\"ReadGeomConvMolden\" action=\"ReadGeomConvMolden\" />\n"
1501 "        <menuitem name=\"ReadGeomConvXYZ\" action=\"ReadGeomConvXYZ\" />\n"
1502 "        <menuitem name=\"ReadGeomIRCGamess\" action=\"ReadGeomIRCGamess\" />\n"
1503 "        <menuitem name=\"ReadGeomIRCFireFly\" action=\"ReadGeomIRCFireFly\" />\n"
1504 "      </menu>\n"
1505 "    </menu>\n"
1506 "      <menu name=\"Edit\" action=\"Edit\">\n"
1507 "        <menuitem name=\"EditResetAllConnections\" action=\"EditResetAllConnections\" />\n"
1508 "        <menuitem name=\"EditResetMultipleConnections\" action=\"EditResetMultipleConnections\" />\n"
1509 "        <menuitem name=\"EditResetConnectionsBetweenSelectedAndNotSelectedAtoms\" action=\"EditResetConnectionsBetweenSelectedAndNotSelectedAtoms\" />\n"
1510 "        <menuitem name=\"EditResetConnectionsBetweenSelectedAtoms\" action=\"EditResetConnectionsBetweenSelectedAtoms\" />\n"
1511 "        <separator name=\"sepMenuEditCopySelectedAtoms\" />\n"
1512 "        <menuitem name=\"EditCopySelectedAtoms\" action=\"EditCopySelectedAtoms\" />\n"
1513 "        <separator name=\"sepMenuEditDeleteMolecule\" />\n"
1514 "        <menuitem name=\"EditDeleteHydrogenAtoms\" action=\"EditDeleteHydrogenAtoms\" />\n"
1515 "        <menuitem name=\"EditDeleteSelectedAtoms\" action=\"EditDeleteSelectedAtoms\" />\n"
1516 "        <menuitem name=\"EditDeleteMolecule\" action=\"EditDeleteMolecule\" />\n"
1517 "        <separator name=\"sepMenuEditMove\" />\n"
1518 "        <menuitem name=\"EditMoveCenterOfSelectedAtomsToOrigin\" action=\"EditMoveCenterOfSelectedAtomsToOrigin\" />\n"
1519 #ifdef EXPERIMENTAL
1520 "        <menuitem name=\"EditAlignPrincipalAxesOfSelectedAtomsToXYZ\" action=\"EditAlignPrincipalAxesOfSelectedAtomsToXYZ\" />\n"
1521 "        <menuitem name=\"EditAlignSelectedAndNotSelectedAtoms\" action=\"EditAlignSelectedAndNotSelectedAtoms\" />\n"
1522 #endif
1523 "        <separator name=\"sepMenuEditOpenGeometryEditor\" />\n"
1524 "        <menuitem name=\"EditOpenGeometryEditor\" action=\"EditOpenGeometryEditor\" />\n"
1525 "        <separator name=\"sepMenuPersonalFragments\" />\n"
1526 "        <menu name=\"PersonalFragments\" action=\"PersonalFragments\">\n"
1527 "          <menuitem name=\"PersonalFragmentsNewGroup\" action=\"PersonalFragmentsNewGroup\" />\n"
1528 "          <menuitem name=\"PersonalFragmentsDeleteGroup\" action=\"PersonalFragmentsDeleteGroup\" />\n"
1529 "          <separator name=\"sepMenuPersonalFragmentsAddMolecule\" />\n"
1530 "          <menuitem name=\"PersonalFragmentsAddMolecule\" action=\"PersonalFragmentsAddMolecule\" />\n"
1531 "          <menuitem name=\"PersonalFragmentsRemoveFragment\" action=\"PersonalFragmentsRemoveFragment\" />\n"
1532 "        </menu>\n"
1533 "      </menu>\n"
1534 "      <menu name=\"Selection\" action=\"Selection\">\n"
1535 "        <menuitem name=\"EditSelectAll\" action=\"EditSelectAll\" />\n"
1536 "        <menuitem name=\"EditInvertSelection\" action=\"EditInvertSelection\" />\n"
1537 "        <menuitem name=\"EditUnSelectAll\" action=\"EditUnSelectAll\" />\n"
1538 "        <separator name=\"sepMenuSelectHighAtoms\" />\n"
1539 "        <menuitem name=\"EditSelectHighAtoms\" action=\"EditSelectHighAtoms\" />\n"
1540 "        <menuitem name=\"EditSelectMediumAtoms\" action=\"EditSelectMediumAtoms\" />\n"
1541 "        <menuitem name=\"EditSelectLowAtoms\" action=\"EditSelectLowAtoms\" />\n"
1542 "        <separator name=\"sepMenuSelectFixedAtoms\" />\n"
1543 "        <menuitem name=\"EditSelectFixedAtoms\" action=\"EditSelectFixedAtoms\" />\n"
1544 "        <menuitem name=\"EditSelectVariableAtoms\" action=\"EditSelectVariableAtoms\" />\n"
1545 "        <menuitem name=\"EditSelectFirstResidue\" action=\"EditSelectFirstResidue\" />\n"
1546 "        <menuitem name=\"EditSelectLastResidue\" action=\"EditSelectLastResidue\" />\n"
1547 "        <menuitem name=\"EditSelectResidueByNumber\" action=\"EditSelectResidueByNumber\" />\n"
1548 "        <menuitem name=\"EditSelectResidueByName\" action=\"EditSelectResidueByName\" />\n"
1549 "        <menuitem name=\"EditSelectAtomsByMMType\" action=\"EditSelectAtomsByMMType\" />\n"
1550 "        <menuitem name=\"EditSelectAtomsByPDBType\" action=\"EditSelectAtomsByPDBType\" />\n"
1551 "        <menuitem name=\"EditSelectAtomsBySymbol\" action=\"EditSelectAtomsBySymbol\" />\n"
1552 "        <menuitem name=\"EditSelectAtomsBySphere\" action=\"EditSelectAtomsBySphere\" />\n"
1553 "        <menuitem name=\"EditSelectAtomsByPositiveCharges\" action=\"EditSelectAtomsByPositiveCharges\" />\n"
1554 "        <menuitem name=\"EditSelectAtomsByNegativeCharges\" action=\"EditSelectAtomsByNegativeCharges\" />\n"
1555 "        <menuitem name=\"EditSelectAtomsMultiple\" action=\"EditSelectAtomsMultiple\" />\n"
1556 "      </menu>\n"
1557 "      <menu name=\"SaveAs\" action=\"SaveAs\">\n"
1558 "        <menuitem name=\"SaveAsGabedit\" action=\"SaveAsGabedit\" />\n"
1559 "        <menuitem name=\"SaveAsXYZ\" action=\"SaveAsXYZ\" />\n"
1560 "        <menuitem name=\"SaveAsMol2\" action=\"SaveAsMol2\" />\n"
1561 "        <menuitem name=\"SaveAsMol\" action=\"SaveAsMol\" />\n"
1562 "        <menuitem name=\"SaveAsTinker\" action=\"SaveAsTinker\" />\n"
1563 "        <menuitem name=\"SaveAsPDB\" action=\"SaveAsPDB\" />\n"
1564 "        <menuitem name=\"SaveAsPOSCARCartn\" action=\"SaveAsPOSCARCartn\" />\n"
1565 "        <menuitem name=\"SaveAsPOSCARDirect\" action=\"SaveAsPOSCARDirect\" />\n"
1566 "        <menuitem name=\"SaveAsCIFAllAtoms\" action=\"SaveAsCIFAllAtoms\" />\n"
1567 "        <menuitem name=\"SaveAsCIF\" action=\"SaveAsCIF\" />\n"
1568 "        <menuitem name=\"SaveAsHyperchem\" action=\"SaveAsHyperchem\" />\n"
1569 "        <menuitem name=\"SaveAsCChemI\" action=\"SaveAsCChemI\" />\n"
1570 "        <separator name=\"sepMenuSaveAsZmat\" />\n"
1571 "        <menuitem name=\"SaveAsMopacZMat\" action=\"SaveAsMopacZMat\" />\n"
1572 "        <menuitem name=\"SaveAsGaussianZMat\" action=\"SaveAsGaussianZMat\" />\n"
1573 "        <separator name=\"sepMenuSaveOpenBabel\" />\n"
1574 "        <menuitem name=\"SaveUsingOpenBabel\" action=\"SaveUsingOpenBabel\" />\n"
1575 "      </menu>\n"
1576 "      <separator name=\"sepMenuAdd\" />\n"
1577 "      <menu name=\"Add\" action=\"Add\">\n"
1578 "        <menuitem name=\"InsertAFragment\" action=\"InsertAFragment\" />\n"
1579 "          <separator name=\"sepMenuAddEnd\" />\n"
1580 "          <menuitem name=\"AddHydrogens\" action=\"AddHydrogens\" />\n"
1581 "          <menuitem name=\"AddMaxHydrogens\" action=\"AddMaxHydrogens\" />\n"
1582 "          <menuitem name=\"AddOneHydrogen\" action=\"AddOneHydrogen\" />\n"
1583 "          <separator name=\"sepMenuAddTpl\" />\n"
1584 "          <menuitem name=\"AddHydrogensTpl\" action=\"AddHydrogensTpl\" />\n"
1585 "      </menu>\n"
1586 "      <menu name=\"Build\" action=\"Build\">\n"
1587 "        <menuitem name=\"BuildLinearMolecule\" action=\"BuildLinearMolecule\" />\n"
1588 "        <separator name=\"sepBuildRingMolecule\" />\n"
1589 "        <menuitem name=\"BuildRingMolecule\" action=\"BuildRingMolecule\" />\n"
1590 "        <separator name=\"sepBuildBuildMoleculeWithSymmetry\" />\n"
1591 "        <menuitem name=\"BuildMoleculeWithSymmetry\" action=\"BuildMoleculeWithSymmetry\" />\n"
1592 "        <separator name=\"sepBuildBuildPolyPeptide\" />\n"
1593 "        <menuitem name=\"BuildPolyPeptide\" action=\"BuildPolyPeptide\" />\n"
1594 "        <separator name=\"sepBuildBuildPolyNucleicAcid\" />\n"
1595 "        <menuitem name=\"BuildPolyNucleicAcid\" action=\"BuildPolyNucleicAcid\" />\n"
1596 "        <separator name=\"sepBuildBuildPolySaccharide\" />\n"
1597 "        <menuitem name=\"BuildPolySaccharide\" action=\"BuildPolySaccharide\" />\n"
1598 "        <separator name=\"sepBuildBuildNanoTube\" />\n"
1599 "        <menuitem name=\"BuildNanoTube\" action=\"BuildNanoTube\" />\n"
1600 "      </menu>\n"
1601 #ifdef DRAWGEOMGL
1602 "    <separator name=\"sepMenuCrystallography\" />\n"
1603 "      <menu name=\"Crystallography\" action=\"Crystallography\">\n"
1604 "        <menuitem name=\"PrototypeCrystal\" action=\"PrototypeCrystal\" />\n"
1605 "        <separator name=\"sepPrototypeCrystal\" />\n"
1606 "        <menuitem name=\"StandardizeCellPrimitive\" action=\"StandardizeCellPrimitive\" />\n"
1607 "        <menuitem name=\"StandardizeCellConv\" action=\"StandardizeCellConv\" />\n"
1608 "        <menuitem name=\"WrapAtomsToCell\" action=\"WrapAtomsToCell\" />\n"
1609 "        <separator name=\"sepStandardizeCell\" />\n"
1610 "      <menu name=\"Reduction\" action=\"Reduction\">\n"
1611 "        <menuitem name=\"ReductionPrimitive\" action=\"ReductionPrimitive\" />\n"
1612 "        <menuitem name=\"ReductionNiggli\" action=\"ReductionNiggli\" />\n"
1613 "        <menuitem name=\"ReductionDelaunay\" action=\"ReductionDelaunay\" />\n"
1614 "      </menu>\n"
1615 "        <separator name=\"sepreduction\" />\n"
1616 "        <menuitem name=\"ComputeSpaceGroupSym\" action=\"ComputeSpaceGroupSym\" />\n"
1617 "        <menuitem name=\"ComputeSymmetryInfo\" action=\"ComputeSymmetryInfo\" />\n"
1618 "        <menuitem name=\"ComputeKPointsPath\" action=\"ComputeKPointsPath\" />\n"
1619 "        <separator name=\"sepComputeCrystal\" />\n"
1620 "      <menu name=\"BuildCrystalsDeriv\" action=\"BuildCrystalsDeriv\">\n"
1621 "        <menuitem name=\"BuildSuperCellSimple\" action=\"BuildSuperCellSimple\" />\n"
1622 "        <menuitem name=\"BuildSuperCell\" action=\"BuildSuperCell\" />\n"
1623 "        <menuitem name=\"BuildSlab\" action=\"BuildSlab\" />\n"
1624 "        <menuitem name=\"BuildWulff\" action=\"BuildWulff\" />\n"
1625 "        <separator name=\"sepBuildCrystal\" />\n"
1626 "        <menuitem name=\"BuildCrystalGen\" action=\"BuildCrystalGen\" />\n"
1627 "      </menu>\n"
1628 "        <separator name=\"sepBuildCrystalAll\" />\n"
1629 "        <menuitem name=\"ComputeVolume\" action=\"ComputeVolume\" />\n"
1630 "        <separator name=\"sepComputeVolume\" />\n"
1631 "        <menuitem name=\"SetSymPrec\" action=\"SetSymPrec\" />\n"
1632 "        <separator name=\"sepSetSymPrec\" />\n"
1633 "        <menuitem name=\"HelpCrystal\" action=\"HelpCrystal\" />\n"
1634 "        <separator name=\"sepHelpCrystal\" />\n"
1635 "      </menu>\n"
1636 #endif
1637 "    <separator name=\"sepMenuOperations\" />\n"
1638 "    <menu name=\"Operations\" action=\"Operations\">\n"
1639 "      <menuitem name=\"OperationsTranslate\" action=\"OperationsTranslate\" />\n"
1640 "      <menuitem name=\"OperationsRotation\" action=\"OperationsRotation\" />\n"
1641 "      <menuitem name=\"OperationsRotationZ\" action=\"OperationsRotationZ\" />\n"
1642 "      <menuitem name=\"OperationsZoom\" action=\"OperationsZoom\" />\n"
1643 "      <menuitem name=\"OperationsScaleStick\" action=\"OperationsScaleStick\" />\n"
1644 "      <menuitem name=\"OperationsScaleBall\" action=\"OperationsScaleBall\" />\n"
1645 "      <menuitem name=\"OperationsScaleDipole\" action=\"OperationsScaleDipole\" />\n"
1646 "      <separator name=\"sepMenuSelectionOfAtoms\" />\n"
1647 "      <menuitem name=\"OperationsSelectionOfAtoms\" action=\"OperationsSelectionOfAtoms\" />\n"
1648 "      <menuitem name=\"OperationsDeleteObjects\" action=\"OperationsDeleteObjects\" />\n"
1649 "      <menuitem name=\"OperationsMoveAtoms\" action=\"OperationsMoveAtoms\" />\n"
1650 "      <menuitem name=\"OperationsRotationAtoms\" action=\"OperationsRotationAtoms\" />\n"
1651 "      <menuitem name=\"OperationsRotationZAtoms\" action=\"OperationsRotationZAtoms\" />\n"
1652 "      <menuitem name=\"OperationsEditObjects\" action=\"OperationsEditObjects\" />\n"
1653 "      <menuitem name=\"OperationsInsertFrag\" action=\"OperationsInsertFrag\" />\n"
1654 "      <separator name=\"sepMenuMeasure\" />\n"
1655 "      <menuitem name=\"OperationsMeasure\" action=\"OperationsMeasure\" />\n"
1656 "    </menu>\n"
1657 "    <menu name=\"Labels\" action=\"Labels\">\n"
1658 "      <menuitem name=\"LabelsNothing\" action=\"LabelsNothing\" />\n"
1659 "      <menuitem name=\"LabelsSymbols\" action=\"LabelsSymbols\" />\n"
1660 "      <menuitem name=\"LabelsNumbers\" action=\"LabelsNumbers\" />\n"
1661 "      <menuitem name=\"LabelsMMTypes\" action=\"LabelsMMTypes\" />\n"
1662 "      <menuitem name=\"LabelsPDBTypes\" action=\"LabelsPDBTypes\" />\n"
1663 "      <menuitem name=\"LabelsLayers\" action=\"LabelsLayers\" />\n"
1664 "      <menuitem name=\"LabelsSymbolsAndNumbers\" action=\"LabelsSymbolsAndNumbers\" />\n"
1665 "      <menuitem name=\"LabelsCharges\" action=\"LabelsCharges\" />\n"
1666 "      <menuitem name=\"LabelsSymbolsAndCharges\" action=\"LabelsSymbolsAndCharges\" />\n"
1667 "      <menuitem name=\"LabelsNumbersAndCharges\" action=\"LabelsNumbersAndCharges\" />\n"
1668 "      <menuitem name=\"LabelsRedidues\" action=\"LabelsRedidues\" />\n"
1669 "      <menuitem name=\"LabelsCoordinates\" action=\"LabelsCoordinates\" />\n"
1670 "      <separator name=\"sepMenuLabelsDistances\" />\n"
1671 "      <menuitem name=\"LabelsDistances\" action=\"LabelsDistances\" />\n"
1672 "      <menuitem name=\"LabelsDipole\" action=\"LabelsDipole\" />\n"
1673 #ifdef DRAWGEOMGL
1674 "      <separator name=\"sepMenuLabelsOrtho\" />\n"
1675 "      <menuitem name=\"RenderLabelsOrtho\" action=\"RenderLabelsOrtho\" />\n"
1676 #endif
1677 "    </menu>\n"
1678 "    <menu name=\"Render\" action=\"Render\">\n"
1679 "      <menuitem name=\"RenderGeometryStick\" action=\"RenderGeometryStick\" />\n"
1680 "      <menuitem name=\"RenderGeometryBallAndStick\" action=\"RenderGeometryBallAndStick\" />\n"
1681 #ifdef DRAWGEOMGL
1682 "      <menuitem name=\"RenderGeometrySpaceFill\" action=\"RenderGeometrySpaceFill\" />\n"
1683 #endif
1684 "      <separator name=\"sepMenuPerspective\" />\n"
1685 "      <menuitem name=\"RenderPerspective\" action=\"RenderPerspective\" />\n"
1686 #ifndef DRAWGEOMGL
1687 "      <menuitem name=\"RenderLighting\" action=\"RenderLighting\" />\n"
1688 "      <menuitem name=\"RenderOrtep\" action=\"RenderOrtep\" />\n"
1689 "      <menuitem name=\"RenderCartoon\" action=\"RenderCartoon\" />\n"
1690 "      <menuitem name=\"RenderShad\" action=\"RenderShad\" />\n"
1691 #endif
1692 "      <separator name=\"sepMenuShowDipole\" />\n"
1693 #ifdef DRAWGEOMGL
1694 "      <menuitem name=\"RenderShowAxes\" action=\"RenderShowAxes\" />\n"
1695 "      <menuitem name=\"RenderShowBox\" action=\"RenderShowBox\" />\n"
1696 #endif
1697 "      <menuitem name=\"RenderShowDipole\" action=\"RenderShowDipole\" />\n"
1698 "      <menuitem name=\"RenderShowHydrogenBonds\" action=\"RenderShowHydrogenBonds\" />\n"
1699 "      <menuitem name=\"RenderShowDoubleTripleBonds\" action=\"RenderShowDoubleTripleBonds\" />\n"
1700 "      <separator name=\"sepMenuDefault\" />\n"
1701 "      <menu name=\"RenderDefault\" action=\"RenderDefault\">\n"
1702 "         <menuitem name=\"RenderDefaultStick\" action=\"RenderDefaultStick\" />\n"
1703 "         <menuitem name=\"RenderDefaultBall\" action=\"RenderDefaultBall\" />\n"
1704 "         <menuitem name=\"RenderDefaultZoom\" action=\"RenderDefaultZoom\" />\n"
1705 "         <menuitem name=\"RenderDefaultDipole\" action=\"RenderDefaultDipole\" />\n"
1706 "         <menuitem name=\"RenderDefaultCenter\" action=\"RenderDefaultCenter\" />\n"
1707 "         <menuitem name=\"RenderDefaultAll\" action=\"RenderDefaultAll\" />\n"
1708 "      </menu>\n"
1709 "      <menu name=\"RenderBackgroundColor\" action=\"RenderBackgroundColor\">\n"
1710 "         <menuitem name=\"RenderBackgroundColorBlack\" action=\"RenderBackgroundColorBlack\" />\n"
1711 "         <menuitem name=\"RenderBackgroundColorOther\" action=\"RenderBackgroundColorOther\" />\n"
1712 "      </menu>\n"
1713 #ifdef DRAWGEOMGL
1714 "       <separator name=\"sepMenuRenderLight\" />\n"
1715 "       <menu name=\"RenderLight\" action = \"RenderLight\">\n"
1716 "           <menuitem name=\"RenderLightOnOff1\" action=\"RenderLightOnOff1\" />\n"
1717 "           <menuitem name=\"RenderLightOnOff2\" action=\"RenderLightOnOff2\" />\n"
1718 "           <menuitem name=\"RenderLightOnOff3\" action=\"RenderLightOnOff3\" />\n"
1719 "       </menu>\n"
1720 #endif
1721 "      <separator name=\"sepMenuShowHide\" />\n"
1722 "      <menuitem name=\"RenderHideHydrogenAtoms\" action=\"RenderHideHydrogenAtoms\" />\n"
1723 "      <menuitem name=\"RenderHideNotSelectedAtoms\" action=\"RenderHideNotSelectedAtoms\" />\n"
1724 "      <menuitem name=\"RenderHideSelectedAtoms\" action=\"RenderHideSelectedAtoms\" />\n"
1725 "      <menuitem name=\"RenderShowHydrogenAtoms\" action=\"RenderShowHydrogenAtoms\" />\n"
1726 "      <menuitem name=\"RenderShowAllAtoms\" action=\"RenderShowAllAtoms\" />\n"
1727 "    </menu>\n"
1728 "    <separator name=\"sepMenuSymmetry\" />\n"
1729 "    <menu name=\"Symmetry\" action=\"Symmetry\">\n"
1730 "      <menuitem name=\"SymmetryRotationalConstantes\" action=\"SymmetryRotationalConstantes\" />\n"
1731 "      <menuitem name=\"SymmetryGroupSymmetry\" action=\"SymmetryGroupSymmetry\" />\n"
1732 "      <menuitem name=\"SymmetryAbelianGroup\" action=\"SymmetryAbelianGroup\" />\n"
1733 "      <separator name=\"sepMenuSymmetryGroupSymmetrize\" />\n"
1734 "      <menuitem name=\"SymmetryGroupSymmetrize\" action=\"SymmetryGroupSymmetrize\" />\n"
1735 "      <separator name=\"sepMenuSymmetrySetTolerance\" />\n"
1736 "      <menuitem name=\"SymmetrySetTolerance\" action=\"SymmetrySetTolerance\" />\n"
1737 "    </menu>\n"
1738 "    <separator name=\"sepMenuSet\" />\n"
1739 "    <menu name=\"Set\" action=\"Set\">\n"
1740 "      <menuitem name=\"SetOriginToCenterOfMolecule\" action=\"SetOriginToCenterOfMolecule\" />\n"
1741 "      <menuitem name=\"SetOriginToCenterOfSelectedAtoms\" action=\"SetOriginToCenterOfSelectedAtoms\" />\n"
1742 "      <menuitem name=\"SetXYZToPAX\" action=\"SetXYZToPAX\" />\n"
1743 "      <menuitem name=\"SetXYZToPAZ\" action=\"SetXYZToPAZ\" />\n"
1744 "      <menuitem name=\"SetXYZToStandardOrientaion\" action=\"SetXYZToStandardOrientaion\" />\n"
1745 "      <menuitem name=\"SetXYZToStandardOrientaionSelectedAndNotSelected\" action=\"SetXYZToStandardOrientaionSelectedAndNotSelected\" />\n"
1746 "      <separator name=\"sepMenuSetLayer\" />\n"
1747 "      <menuitem name=\"SetSelectedAtomsToHighLayer\" action=\"SetSelectedAtomsToHighLayer\" />\n"
1748 "      <menuitem name=\"SetSelectedAtomsToMediumLayer\" action=\"SetSelectedAtomsToMediumLayer\" />\n"
1749 "      <menuitem name=\"SetSelectedAtomsToLowLayer\" action=\"SetSelectedAtomsToLowLayer\" />\n"
1750 "      <separator name=\"sepMenuSetFixed\" />\n"
1751 "      <menuitem name=\"SetSelectedAtomsToFixed\" action=\"SetSelectedAtomsToFixed\" />\n"
1752 "      <menuitem name=\"SetSelectedAtomsToVariable\" action=\"SetSelectedAtomsToVariable\" />\n"
1753 "      <separator name=\"sepMenuSetType\" />\n"
1754 "      <menuitem name=\"SetSymbolOfselectedAtoms\" action=\"SetSymbolOfselectedAtoms\" />\n"
1755 "      <menuitem name=\"SetMMTypeOfselectedAtoms\" action=\"SetMMTypeOfselectedAtoms\" />\n"
1756 "      <menuitem name=\"SetPDBTypeOfselectedAtoms\" action=\"SetPDBTypeOfselectedAtoms\" />\n"
1757 "      <menuitem name=\"SetResidueNameOfselectedAtoms\" action=\"SetResidueNameOfselectedAtoms\" />\n"
1758 "      <menuitem name=\"SetChargeOfselectedAtoms\" action=\"SetChargeOfselectedAtoms\" />\n"
1759 "      <menuitem name=\"scaleChargesOfSelectedAtoms\" action=\"scaleChargesOfSelectedAtoms\" />\n"
1760 "      <separator name=\"sepMenuSetDipole\" />\n"
1761 "      <menuitem name=\"SetDipole\" action=\"SetDipole\" />\n"
1762 "      <menuitem name=\"SetDipoleFormCharges\" action=\"SetDipoleFormCharges\" />\n"
1763 
1764 "      <separator name=\"sepMenuScaleCell\" />\n"
1765 "      <menuitem name=\"ScaleCell\" action=\"ScaleCell\" />\n"
1766 "      <separator name=\"sepMenuSetHydrogenBonds\" />\n"
1767 "      <menuitem name=\"SetHydrogenBonds\" action=\"SetHydrogenBonds\" />\n"
1768 "      <separator name=\"sepMenuSetPropertiesOfAtoms\" />\n"
1769 "      <menuitem name=\"SetPropertiesOfAtoms\" action=\"SetPropertiesOfAtoms\" />\n"
1770 "      <separator name=\"sepMenuSetMolecularMechanicsParameters\" />\n"
1771 "      <menuitem name=\"SetMolecularMechanicsParameters\" action=\"SetMolecularMechanicsParameters\" />\n"
1772 "      <menuitem name=\"SetPDBTemplate\" action=\"SetPDBTemplate\" />\n"
1773 "      <separator name=\"sepMenuSetChargesUsingPDBTemplate\" />\n"
1774 "      <menuitem name=\"SetChargesUsingPDBTemplate\" action=\"SetChargesUsingPDBTemplate\" />\n"
1775 "      <menuitem name=\"SetAtomTypesUsingPDBTemplate\" action=\"SetAtomTypesUsingPDBTemplate\" />\n"
1776 "      <menuitem name=\"SetAtomTypeAndChargeUsingPDBTemplate\" action=\"SetAtomTypeAndChargeUsingPDBTemplate\" />\n"
1777 "      <menuitem name=\"SetAtomTypeCalcul\" action=\"SetAtomTypeCalcul\" />\n"
1778 "      <menuitem name=\"SetChargesToZero\" action=\"SetChargesToZero\" />\n"
1779 "      <separator name=\"sepMenuSetPovrayBackground\" />\n"
1780 "      <menuitem name=\"SetPovrayBackground\" action=\"SetPovrayBackground\" />\n"
1781 #ifdef DRAWGEOMGL
1782 "      <separator name=\"sepMenuGL\" />\n"
1783 "      <menuitem name=\"SetCamera\" action=\"SetCamera\" />\n"
1784 "      <menuitem name=\"SetLightPositions\" action=\"SetLightPositions\" />\n"
1785 "      <separator name=\"sepMenuAxes\" />\n"
1786 "      <menuitem name=\"SetXYZAxesProperties\" action=\"SetXYZAxesProperties\" />\n"
1787 #endif
1788 "    </menu>\n"
1789 "    <separator name=\"sepExport\" />\n"
1790 "    <menu name=\"Export\" action=\"Export\">\n"
1791 "      <menuitem name=\"ExportPostscript\" action=\"ExportPostscript\" />\n"
1792 "      <menuitem name=\"ExportEPS\" action=\"ExportEPS\" />\n"
1793 "      <menuitem name=\"ExportPDF\" action=\"ExportPDF\" />\n"
1794 "      <menuitem name=\"ExportSVG\" action=\"ExportSVG\" />\n"
1795 "      <menuitem name=\"ExportPovray\" action=\"ExportPovray\" />\n"
1796 "    </menu>\n"
1797 "    <separator name=\"sepScreenCapture\" />\n"
1798 "    <menu name=\"ScreenCapture\" action=\"ScreenCapture\">\n"
1799 "      <menuitem name=\"ScreenCaptureJPG\" action=\"ScreenCaptureJPG\" />\n"
1800 "      <menuitem name=\"ScreenCapturePPM\" action=\"ScreenCapturePPM\" />\n"
1801 "      <menuitem name=\"ScreenCaptureBMP\" action=\"ScreenCaptureBMP\" />\n"
1802 "      <menuitem name=\"ScreenCapturePNG\" action=\"ScreenCapturePNG\" />\n"
1803 "      <menuitem name=\"ScreenCaptureTIF\" action=\"ScreenCaptureTIF\" />\n"
1804 "      <menuitem name=\"ScreenCapturePS\" action=\"ScreenCapturePS\" />\n"
1805 "      <menuitem name=\"ScreenCaptureCilpBoard\" action=\"ScreenCaptureCilpBoard\" />\n"
1806 "    </menu>\n"
1807 "    <separator name=\"sepTools\" />\n"
1808 "    <menu name=\"Tools\" action=\"Tools\">\n"
1809 "      <menuitem name=\"ComputeTotalCharge\" action=\"ComputeTotalCharge\" />\n"
1810 "      <menuitem name=\"ComputeDipoleFormCharges\" action=\"ComputeDipoleFormCharges\" />\n"
1811 "      <separator name=\"sepSel\" />\n"
1812 "      <menuitem name=\"ComputeChargeForResidues\" action=\"ComputeChargeForResidues\" />\n"
1813 "      <menuitem name=\"ComputeChargeOfSelectedsAtoms\" action=\"ComputeChargeOfSelectedsAtoms\" />\n"
1814 "      <separator name=\"sepIsotope\" />\n"
1815 "      <menuitem name=\"ComputeIsotopeDistribution\" action=\"ComputeIsotopeDistribution\" />\n"
1816 "      <separator name=\"sepVolMolecule\" />\n"
1817 "      <menuitem name=\"ComputeVolumeMolecule\" action=\"ComputeVolumeMolecule\" />\n"
1818 "    </menu>\n"
1819 "    <separator name=\"sepMolecularMechanics\" />\n"
1820 "    <menu name=\"MolecularMechanics\" action=\"MolecularMechanics\">\n"
1821 "      <menuitem name=\"MolecularMechanicsEnergy\" action=\"MolecularMechanicsEnergy\" />\n"
1822 "      <menuitem name=\"MolecularMechanicsOptimization\" action=\"MolecularMechanicsOptimization\" />\n"
1823 "      <menuitem name=\"MolecularMechanicsDynamics\" action=\"MolecularMechanicsDynamics\" />\n"
1824 "      <menuitem name=\"MolecularMechanicsDynamicsConfo\" action=\"MolecularMechanicsDynamicsConfo\" />\n"
1825 "    </menu>\n"
1826 "    <separator name=\"sepSemiEmpirical\" />\n"
1827 "    <menu name=\"SemiEmpirical\" action=\"SemiEmpirical\">\n"
1828 "      <separator name=\"sepSemiEmpiricalMopac\" />\n"
1829 "      <menuitem name=\"SemiEmpiricalEnergyMopac\" action=\"SemiEmpiricalEnergyMopac\" />\n"
1830 "      <menuitem name=\"SemiEmpiricalOptimizationMopac\" action=\"SemiEmpiricalOptimizationMopac\" />\n"
1831 "      <menuitem name=\"SemiEmpiricalOptimizationMopacSparkle\" action=\"SemiEmpiricalOptimizationMopacSparkle\" />\n"
1832 "      <menuitem name=\"SemiEmpiricalESPMopac\" action=\"SemiEmpiricalESPMopac\" />\n"
1833 "      <menuitem name=\"SemiEmpiricalScanMopac\" action=\"SemiEmpiricalScanMopac\" />\n"
1834 
1835 "      <separator name=\"sepSemiEmpiricalOrca\" />\n"
1836 "      <menuitem name=\"SemiEmpiricalEnergyOrca\" action=\"SemiEmpiricalEnergyOrca\" />\n"
1837 "      <menuitem name=\"SemiEmpiricalOptimizationOrca\" action=\"SemiEmpiricalOptimizationOrca\" />\n"
1838 
1839 "      <separator name=\"sepSemiEmpiricalFireFly\" />\n"
1840 "      <menuitem name=\"SemiEmpiricalEnergyFireFlyAM1\" action=\"SemiEmpiricalEnergyFireFlyAM1\" />\n"
1841 "      <menuitem name=\"SemiEmpiricalOptimizationFireFlyAM1\" action=\"SemiEmpiricalOptimizationFireFlyAM1\" />\n"
1842 
1843 "      <separator name=\"sepSemiEmpiricalOpenBabel\" />\n"
1844 "      <menuitem name=\"SemiEmpiricalEnergyOpenBabel\" action=\"SemiEmpiricalEnergyOpenBabel\" />\n"
1845 "      <menuitem name=\"SemiEmpiricalOptimizationOpenBabel\" action=\"SemiEmpiricalOptimizationOpenBabel\" />\n"
1846 
1847 "      <separator name=\"sepSemiEmpiricalGeneric\" />\n"
1848 "      <menuitem name=\"SemiEmpiricalEnergyGeneric\" action=\"SemiEmpiricalEnergyGeneric\" />\n"
1849 "      <menuitem name=\"SemiEmpiricalOptimizationGeneric\" action=\"SemiEmpiricalOptimizationGeneric\" />\n"
1850 
1851 "      <separator name=\"sepSemiEmpiricalMD\" />\n"
1852 "      <menuitem name=\"SemiEmpiricalMD\" action=\"SemiEmpiricalMD\" />\n"
1853 "      <menuitem name=\"SemiEmpiricalMDConfo\" action=\"SemiEmpiricalMDConfo\" />\n"
1854 "    </menu>\n"
1855 "    <separator name=\"sepView\" />\n"
1856 "    <menu name=\"View\" action=\"View\">\n"
1857 "      <menuitem name=\"ShowToolBar\" action=\"ShowToolBar\" />\n"
1858 "      <menuitem name=\"ShowStatusBox\" action=\"ShowStatusBox\" />\n"
1859 "    </menu>\n"
1860 "    <separator name=\"sepClose\" />\n"
1861 "    <menuitem name=\"Close\" action=\"Close\" />\n"
1862 "  </popup>\n"
1863 "  <toolbar action=\"ToolbarGL\">\n"
1864 "      <toolitem name=\"OperationsTranslate\" action=\"OperationsTranslate\" />\n"
1865 "      <toolitem name=\"OperationsRotation\" action=\"OperationsRotation\" />\n"
1866 "      <toolitem name=\"OperationsRotationZ\" action=\"OperationsRotationZ\" />\n"
1867 "      <toolitem name=\"OperationsZoom\" action=\"OperationsZoom\" />\n"
1868 "      <toolitem name=\"RenderOptimal\" action=\"RenderOptimal\" />\n"
1869 "      <separator name=\"sepToolBarSelectionOfAtoms\" />\n"
1870 "      <toolitem name=\"OperationsEditObjects\" action=\"OperationsEditObjects\" />\n"
1871 "      <toolitem name=\"SetAtomToInsert\" action=\"SetAtomToInsert\" />\n"
1872 "      <toolitem name=\"AdjustHydrogens\" action=\"AdjustHydrogens\" />\n"
1873 "      <toolitem name=\"OperationsInsertFrag\" action=\"OperationsInsertFrag\" />\n"
1874 "      <toolitem name=\"OperationsSelectionOfAtoms\" action=\"OperationsSelectionOfAtoms\" />\n"
1875 "      <toolitem name=\"OperationsDeleteObjects\" action=\"OperationsDeleteObjects\" />\n"
1876 "      <toolitem name=\"OperationsMoveAtoms\" action=\"OperationsMoveAtoms\" />\n"
1877 "      <toolitem name=\"OperationsRotationAtoms\" action=\"OperationsRotationAtoms\" />\n"
1878 "      <toolitem name=\"OperationsRotationZAtoms\" action=\"OperationsRotationZAtoms\" />\n"
1879 "      <toolitem name=\"RebuildConnectionsDuringEdition\" action=\"RebuildConnectionsDuringEdition\" />\n"
1880 "      <separator name=\"sepToolBarMeasure\" />\n"
1881 "      <separator name=\"sepToolBarMeasure1\" />\n"
1882 "      <toolitem name=\"OperationsMeasure\" action=\"OperationsMeasure\" />\n"
1883 "      <separator name=\"sepToolBarGeometryStick\" />\n"
1884 "      <separator name=\"sepToolBarGeometryStick1\" />\n"
1885 "      <toolitem name=\"RenderGeometryStick\" action=\"RenderGeometryStick\" />\n"
1886 "      <toolitem name=\"RenderGeometryBallAndStick\" action=\"RenderGeometryBallAndStick\" />\n"
1887 "      <separator name=\"sepToolBarShowMeasureNoteBook\" />\n"
1888 "      <separator name=\"sepToolBarShowMeasureNoteBook1\" />\n"
1889 "      <toolitem name=\"ShowMeasureNoteBook\" action=\"ShowMeasureNoteBook\" />\n"
1890 "  </toolbar>\n"
1891 ;
1892 /*******************************************************************************************************************************/
set_init_gtkActionToggleEntries()1893 static void set_init_gtkActionToggleEntries()
1894 {
1895 	gint i=0;
1896 	gtkActionToggleEntries[i++].is_active = distances_draw_mode(); /* LabelsDistances */
1897 	gtkActionToggleEntries[i++].is_active = dipole_draw_mode(); /* LabelsDipole */
1898 #ifdef DRAWGEOMGL
1899 	gtkActionToggleEntries[i++].is_active = ortho_mode(); /* RenderLabelsOrtho */
1900 #endif
1901 	gtkActionToggleEntries[i++].is_active = pers_mode(); /* RenderPerspective */
1902 	gtkActionToggleEntries[i++].is_active = light_mode(); /* RenderLighting */
1903 	gtkActionToggleEntries[i++].is_active = ortep_mode(); /* RenderOrtep */
1904 	gtkActionToggleEntries[i++].is_active = cartoon_mode(); /* RenderCartoon */
1905 	gtkActionToggleEntries[i++].is_active = shad_mode(); /* RenderShad */
1906 #ifdef DRAWGEOMGL
1907 	gtkActionToggleEntries[i++].is_active = testShowAxesGeom(); /* RenderShowAxes */
1908 	gtkActionToggleEntries[i++].is_active = testShowBoxGeom(); /* RenderShowBox */
1909 #endif
1910 	gtkActionToggleEntries[i++].is_active = dipole_mode(); /* RenderShowDipole */
1911 	gtkActionToggleEntries[i++].is_active = ShowHBonds; /* RenderShowHydrogenBonds */
1912 	gtkActionToggleEntries[i++].is_active = getShowMultipleBonds(); /* RenderShowDoubleTripleBonds */
1913 	gtkActionToggleEntries[i++].is_active = TRUE; /* ShowToolBar */
1914 	gtkActionToggleEntries[i++].is_active = TRUE; /* ShowStatusBox */
1915 	gtkActionToggleEntries[i++].is_active = !MeasureIsHide; /* ShowMeasureNoteBook */
1916 	gtkActionToggleEntries[i++].is_active = getAdjustHydrogensYesNo(); /* Ajust hydrogens */
1917 	gtkActionToggleEntries[i++].is_active = getRebuildConnectionsDuringEditionYesNo(); /* rebuild connection */
1918 }
1919 /*******************************************************************************************************************************/
add_widget(GtkUIManager * merge,GtkWidget * widget,GtkContainer * container)1920 static void add_widget (GtkUIManager *merge, GtkWidget   *widget, GtkContainer *container)
1921 {
1922 	GtkWidget *handlebox;
1923 
1924 	if (!GTK_IS_TOOLBAR (widget))  return;
1925 
1926 	handlebox =gtk_handle_box_new ();
1927 	g_object_ref (handlebox);
1928   	gtk_handle_box_set_handle_position  (GTK_HANDLE_BOX(handlebox),GTK_POS_TOP);
1929 	/*   GTK_SHADOW_NONE,  GTK_SHADOW_IN,  GTK_SHADOW_OUT, GTK_SHADOW_ETCHED_IN, GTK_SHADOW_ETCHED_OUT */
1930 	gtk_handle_box_set_shadow_type(GTK_HANDLE_BOX(handlebox),GTK_SHADOW_OUT);
1931 	gtk_box_pack_start (GTK_BOX (container), handlebox, FALSE, FALSE, 0);
1932 
1933 	if (GTK_IS_TOOLBAR (widget))
1934 	{
1935 		GtkToolbar *toolbar;
1936 		toolbar = GTK_TOOLBAR (widget);
1937 		gtk_toolbar_set_show_arrow (toolbar, TRUE);
1938 		gtk_toolbar_set_style(toolbar, GTK_TOOLBAR_ICONS);
1939 		gtk_toolbar_set_orientation(toolbar,  GTK_ORIENTATION_VERTICAL);
1940 		toolBar = toolbar;
1941 		handleBoxToolBar = handlebox;
1942 	}
1943 	gtk_widget_show (widget);
1944 	gtk_container_add (GTK_CONTAINER (handlebox), widget);
1945 	gtk_widget_show (handlebox);
1946 }
1947 /*********************************************************************************************************************/
activate_rotation()1948 void activate_rotation()
1949 {
1950 	GtkAction * actionRotation = gtk_ui_manager_get_action(manager, "/MenuGeom/Operations/OperationsRotation");
1951 	if(GTK_IS_TOGGLE_ACTION(actionRotation)) gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(actionRotation), TRUE);
1952 }
1953 /*********************************************************************************************************************/
activate_edit_objects()1954 void activate_edit_objects()
1955 {
1956 	GtkAction * actionEdition = gtk_ui_manager_get_action(manager, "/MenuGeom/Operations/OperationsEditObjects");
1957 	if(GTK_IS_TOGGLE_ACTION(actionEdition)) gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(actionEdition), TRUE);
1958 }
1959 /*********************************************************************************************************************/
activate_insert_fragment()1960 void activate_insert_fragment()
1961 {
1962 	GtkAction * action = gtk_ui_manager_get_action(manager, "/MenuGeom/Operations/OperationsInsertFrag");
1963 	if(GTK_IS_TOGGLE_ACTION(action)) gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), TRUE);
1964 }
1965 /*********************************************************************************************************************/
activate_insert_crystal()1966 void activate_insert_crystal()
1967 {
1968 	GtkAction * action = gtk_ui_manager_get_action(manager, "/MenuGeom/Operations/OperationsInsertFrag");
1969 	if(GTK_IS_TOGGLE_ACTION(action)) gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), TRUE);
1970 	create_window_fragments_selector("Prototype crystals","Prototype crystals/CaF2_cF12_Fm-3m_225");
1971 }
1972 /*******************************************************************************************************************************/
create_toolbar_and_popup_menu_geom(GtkWidget * box)1973 void create_toolbar_and_popup_menu_geom(GtkWidget* box)
1974 {
1975 	GtkActionGroup *actionGroup = NULL;
1976 	GtkUIManager *merge = NULL;
1977 	GError *error = NULL;
1978 	TypeRenderGeom mode = GEOMETRY_STICK;
1979 
1980   	merge = gtk_ui_manager_new ();
1981   	g_signal_connect_swapped (GeomDlg, "destroy", G_CALLBACK (g_object_unref), merge);
1982 
1983 	actionGroup = gtk_action_group_new ("GabeditPopupMenuGeomActions");
1984 	gtk_action_group_set_translation_domain(actionGroup,GETTEXT_PACKAGE);
1985 	gtk_action_group_add_actions (actionGroup, gtkActionEntries, numberOfGtkActionEntries, NULL);
1986 
1987 	set_init_gtkActionToggleEntries();
1988 	gtk_action_group_add_toggle_actions (actionGroup, gtkActionToggleEntries, numberOfGtkActionToggleEntries, NULL);
1989 
1990 	if(getOperationType() == ROTATION)
1991 	gtk_action_group_add_radio_actions (actionGroup, operationsEntries, numberOfOperationsEntries, OPERATION_ROTATION, G_CALLBACK (render_operation_radio_action), NULL);
1992 	else
1993 	gtk_action_group_add_radio_actions (actionGroup, operationsEntries, numberOfOperationsEntries, OPERATION_EDIT_OBJECTS, G_CALLBACK (render_operation_radio_action), NULL);
1994 
1995 	initLabelOptions (LABELNO);
1996 	gtk_action_group_add_radio_actions (actionGroup, labelEntries , numberOfLabelEntries, LABEL_NO, G_CALLBACK (render_label_radio_action), NULL);
1997 
1998 	if(!stick_mode()) mode = GEOMETRY_BALLSTICK;
1999 	gtk_action_group_add_radio_actions (actionGroup, rendereGeometryEntries, numberOfRenderGeometryEntries, mode, G_CALLBACK (render_geometry_radio_action), NULL);
2000 
2001   	gtk_ui_manager_insert_action_group (merge, actionGroup, 0);
2002 
2003 	g_signal_connect (merge, "add_widget", G_CALLBACK (add_widget), box);
2004   	gtk_window_add_accel_group (GTK_WINDOW (GeomDlg), gtk_ui_manager_get_accel_group (merge));
2005 	if (!gtk_ui_manager_add_ui_from_string (merge, uiMenuInfo, -1, &error))
2006 	{
2007 		g_message ("building menus failed: %s", error->message);
2008 		g_error_free (error);
2009 	}
2010 	else
2011 	{
2012 		/*
2013 		add_attach_functional_to_menu(merge);
2014 		add_hydrocarbon_to_menu(merge);
2015 		add_rings_to_menu(merge);
2016 		add_drugs_to_menu(merge);
2017 		add_miscellaneous_to_menu(merge);
2018 		add_fullerene_to_menu(merge);
2019 		*/
2020 	}
2021 	manager = merge;
2022 	/*
2023 	addGroupesToMenu();
2024 	addFragmentsToMenu();
2025 	*/
2026 }
2027 /*********************************************************************************************************************/
set_sensitive()2028 static void set_sensitive()
2029 {
2030 	GtkWidget *saveAs = gtk_ui_manager_get_widget (manager, "/MenuGeom/SaveAs");
2031 	GtkWidget *deleteMolecule = gtk_ui_manager_get_widget (manager, "/MenuGeom/Edit/EditDeleteMolecule");
2032 	GtkWidget *deleteHydrogenAtoms = gtk_ui_manager_get_widget (manager, "/MenuGeom/Edit/EditDeleteHydrogenAtoms");
2033 	GtkWidget *deleteSelectedAtoms = gtk_ui_manager_get_widget (manager, "/MenuGeom/Edit/EditDeleteSelectedAtoms");
2034 	GtkWidget *moveSelectedAtoms = gtk_ui_manager_get_widget (manager, "/MenuGeom/Edit/EditMoveCenterOfSelectedAtomsToOrigin");
2035 	GtkWidget *alignSelectedAtoms = gtk_ui_manager_get_widget (manager, "/MenuGeom/Edit/EditAlignPrincipalAxesOfSelectedAtomsToXYZ");
2036 	GtkWidget *alignSelectedAndNotSelectedAtoms = gtk_ui_manager_get_widget (manager, "/MenuGeom/Edit/EditAlignSelectedAndNotSelectedAtoms");
2037 	GtkWidget *copySelectedAtoms = gtk_ui_manager_get_widget (manager, "/MenuGeom/Edit/EditCopySelectedAtoms");
2038 	GtkWidget *resetAllConnections = gtk_ui_manager_get_widget (manager, "/MenuGeom/Edit/EditResetAllConnections");
2039 	GtkWidget *resetMultipleConnections = gtk_ui_manager_get_widget (manager, "/MenuGeom/Edit/EditResetMultipleConnections");
2040 	GtkWidget *resetSelectedConnections = gtk_ui_manager_get_widget (manager, "/MenuGeom/Edit/EditResetConnectionsBetweenSelectedAtoms");
2041 	GtkWidget *resetSelectedAndNotSelectedConnections = gtk_ui_manager_get_widget (manager, "/MenuGeom/Edit/EditResetConnectionsBetweenSelectedAndNotSelectedAtoms");
2042 
2043 	GtkWidget *selectAllAtoms = gtk_ui_manager_get_widget (manager, "/MenuGeom/Selection/EditSelectAll");
2044 	GtkWidget *invertSelection = gtk_ui_manager_get_widget (manager, "/MenuGeom/Selection/EditInvertSelection");
2045 	GtkWidget *unSelectAll = gtk_ui_manager_get_widget (manager, "/MenuGeom/Selection/EditUnSelectAll");
2046 	GtkWidget *selectHighAtoms = gtk_ui_manager_get_widget (manager, "/MenuGeom/Selection/EditSelectHighAtoms");
2047 	GtkWidget *selectMediumAtoms = gtk_ui_manager_get_widget (manager, "/MenuGeom/Selection/EditSelectMediumAtoms");
2048 	GtkWidget *selectLowAtoms = gtk_ui_manager_get_widget (manager, "/MenuGeom/Selection/EditSelectLowAtoms");
2049 	GtkWidget *selectFixedAtoms = gtk_ui_manager_get_widget (manager, "/MenuGeom/Selection/EditSelectFixedAtoms");
2050 	GtkWidget *selectVariableAtoms = gtk_ui_manager_get_widget (manager, "/MenuGeom/Selection/EditSelectVariableAtoms");
2051 	GtkWidget *selectFirstResidue = gtk_ui_manager_get_widget (manager, "/MenuGeom/Selection/EditSelectFirstResidue");
2052 	GtkWidget *selectLastResidue = gtk_ui_manager_get_widget (manager, "/MenuGeom/Selection/EditSelectLastResidue");
2053 	GtkWidget *selectResidueByName = gtk_ui_manager_get_widget (manager, "/MenuGeom/Selection/EditSelectResidueByName");
2054 	GtkWidget *selectAtomsByType = gtk_ui_manager_get_widget (manager, "/MenuGeom/Selection/EditSelectAtomsByType");
2055 	GtkWidget *selectAtomsBySymbol = gtk_ui_manager_get_widget (manager, "/MenuGeom/Selection/EditSelectAtomsBySymbol");
2056 	GtkWidget *selectAtomsBySphere = gtk_ui_manager_get_widget (manager, "/MenuGeom/Selection/EditSelectAtomsBySphere");
2057 	GtkWidget *selectAtomsByPositiveCharges = gtk_ui_manager_get_widget (manager, "/MenuGeom/Selection/EditSelectAtomsByPositiveCharges");
2058 	GtkWidget *selectAtomsByNegativeCharges = gtk_ui_manager_get_widget (manager, "/MenuGeom/Selection/EditSelectAtomsByNegativeCharges");
2059 	GtkWidget *selectAtomsMultiple = gtk_ui_manager_get_widget (manager, "/MenuGeom/Selection/EditSelectAtomsMultiple");
2060 	GtkWidget *symmetry = gtk_ui_manager_get_widget (manager, "/MenuGeom/Symmetry");
2061 	GtkWidget *export = gtk_ui_manager_get_widget (manager, "/MenuGeom/Export");
2062 	GtkWidget *mm = gtk_ui_manager_get_widget (manager, "/MenuGeom/MolecularMechanics");
2063 	GtkWidget *sm = gtk_ui_manager_get_widget (manager, "/MenuGeom/SemiEmpirical");
2064 	GtkWidget *origMolecule = gtk_ui_manager_get_widget (manager, "/MenuGeom/Set/SetOriginToCenterOfMolecule");
2065 	GtkWidget *dipoleCharges = gtk_ui_manager_get_widget (manager, "/MenuGeom/Set/SetDipoleFormCharges");
2066 	GtkWidget *charges = gtk_ui_manager_get_widget (manager, "/MenuGeom/Set/SetChargesUsingPDBTemplate");
2067 	GtkWidget *type = gtk_ui_manager_get_widget (manager, "/MenuGeom/Set/SetAtomTypesUsingPDBTemplate");
2068 	GtkWidget *typeCharges = gtk_ui_manager_get_widget (manager, "/MenuGeom/Set/SetAtomTypeAndChargeUsingPDBTemplate");
2069 	GtkWidget *typeCalcul = gtk_ui_manager_get_widget (manager, "/MenuGeom/Set/SetAtomTypeCalcul");
2070 	GtkWidget *chargesZero = gtk_ui_manager_get_widget (manager, "/MenuGeom/Set/SetChargesToZero");
2071 
2072 	GtkWidget *origAtoms = gtk_ui_manager_get_widget (manager, "/MenuGeom/Set/SetOriginToCenterOfSelectedAtoms");
2073 	GtkWidget *pax = gtk_ui_manager_get_widget (manager, "/MenuGeom/Set/SetXYZToPAX");
2074 	GtkWidget *paz = gtk_ui_manager_get_widget (manager, "/MenuGeom/Set/SetXYZToPAZ");
2075 	GtkWidget *so = gtk_ui_manager_get_widget (manager, "/MenuGeom/Set/SetXYZToStandardOrientaion");
2076 	GtkWidget *sosns = gtk_ui_manager_get_widget (manager, "/MenuGeom/Set/SetXYZToStandardOrientaionSelectedAndNotSelected");
2077 
2078 	GtkWidget *layerHigh = gtk_ui_manager_get_widget (manager, "/MenuGeom/Set/SetSelectedAtomsToHighLayer");
2079 	GtkWidget *layerMedium = gtk_ui_manager_get_widget (manager, "/MenuGeom/Set/SetSelectedAtomsToMediumLayer");
2080 	GtkWidget *layerLow = gtk_ui_manager_get_widget (manager, "/MenuGeom/Set/SetSelectedAtomsToLowLayer");
2081 	GtkWidget *fixedAtoms = gtk_ui_manager_get_widget (manager, "/MenuGeom/Set/SetSelectedAtomsToFixed");
2082 	GtkWidget *variableAtoms = gtk_ui_manager_get_widget (manager, "/MenuGeom/Set/SetSelectedAtomsToVariable");
2083 	GtkWidget *setMMTypeOfselectedAtoms = gtk_ui_manager_get_widget (manager, "/MenuGeom/Set/SetMMTypeOfselectedAtoms");
2084 	GtkWidget *setPDBTypeOfselectedAtoms = gtk_ui_manager_get_widget (manager, "/MenuGeom/Set/SetPDBTypeOfselectedAtoms");
2085 	GtkWidget *setResidueNameOfselectedAtoms = gtk_ui_manager_get_widget (manager, "/MenuGeom/Set/SetResidueNameOfselectedAtoms");
2086 	GtkWidget *setSymbolOfselectedAtoms = gtk_ui_manager_get_widget (manager, "/MenuGeom/Set/SetSymbolOfselectedAtoms");
2087 	GtkWidget *setChargeOfselectedAtoms = gtk_ui_manager_get_widget (manager, "/MenuGeom/Set/SetChargeOfselectedAtoms");
2088 	GtkWidget *scaleChargeOfselectedAtoms = gtk_ui_manager_get_widget (manager, "/MenuGeom/Set/ScaleChargeOfselectedAtoms");
2089 	GtkWidget *addPersonnalFragment = gtk_ui_manager_get_widget (manager, "/MenuGeom/Edit/PersonalFragments/PersonalFragmentsAddMolecule");
2090 	GtkWidget *removePersonnalFragment = gtk_ui_manager_get_widget (manager, "/MenuGeom/Edit/PersonalFragments/PersonalFragmentsRemoveFragment");
2091 	GtkWidget *removeAGroup = gtk_ui_manager_get_widget (manager, "/MenuGeom/Edit/PersonalFragments/PersonalFragmentsDeleteGroup");
2092 	gboolean sensitive = TRUE;
2093 
2094   	if(Natoms<1) sensitive = FALSE;
2095 	if(GTK_IS_WIDGET(saveAs)) gtk_widget_set_sensitive(saveAs, sensitive);
2096 	if(GTK_IS_WIDGET(deleteHydrogenAtoms)) gtk_widget_set_sensitive(deleteHydrogenAtoms, sensitive);
2097 	if(GTK_IS_WIDGET(deleteMolecule)) gtk_widget_set_sensitive(deleteMolecule, sensitive);
2098 	if(GTK_IS_WIDGET(selectAllAtoms)) gtk_widget_set_sensitive(selectAllAtoms, sensitive);
2099 	if(GTK_IS_WIDGET(selectHighAtoms)) gtk_widget_set_sensitive(selectHighAtoms, sensitive);
2100 	if(GTK_IS_WIDGET(selectMediumAtoms)) gtk_widget_set_sensitive(selectMediumAtoms, sensitive);
2101 	if(GTK_IS_WIDGET(selectLowAtoms)) gtk_widget_set_sensitive(selectLowAtoms, sensitive);
2102 	if(GTK_IS_WIDGET(selectFixedAtoms)) gtk_widget_set_sensitive(selectFixedAtoms, sensitive);
2103 	if(GTK_IS_WIDGET(selectVariableAtoms)) gtk_widget_set_sensitive(selectVariableAtoms, sensitive);
2104 	if(GTK_IS_WIDGET(selectFirstResidue)) gtk_widget_set_sensitive(selectFirstResidue, sensitive);
2105 	if(GTK_IS_WIDGET(selectLastResidue)) gtk_widget_set_sensitive(selectLastResidue, sensitive);
2106 	if(GTK_IS_WIDGET(selectResidueByName)) gtk_widget_set_sensitive(selectResidueByName, sensitive);
2107 	if(GTK_IS_WIDGET(selectAtomsByType)) gtk_widget_set_sensitive(selectAtomsByType, sensitive);
2108 	if(GTK_IS_WIDGET(selectAtomsBySymbol)) gtk_widget_set_sensitive(selectAtomsBySymbol, sensitive);
2109 	if(GTK_IS_WIDGET(selectAtomsBySphere)) gtk_widget_set_sensitive(selectAtomsBySphere, sensitive);
2110 	if(GTK_IS_WIDGET(selectAtomsBySphere) && NFatoms<1) gtk_widget_set_sensitive(selectAtomsBySphere, FALSE);
2111 	if(GTK_IS_WIDGET(selectAtomsByPositiveCharges)) gtk_widget_set_sensitive(selectAtomsByPositiveCharges, sensitive);
2112 	if(GTK_IS_WIDGET(selectAtomsByNegativeCharges)) gtk_widget_set_sensitive(selectAtomsByNegativeCharges, sensitive);
2113 	if(GTK_IS_WIDGET(selectAtomsMultiple)) gtk_widget_set_sensitive(selectAtomsMultiple, sensitive);
2114 	if(GTK_IS_WIDGET(symmetry)) gtk_widget_set_sensitive(symmetry, sensitive);
2115 	if(GTK_IS_WIDGET(export)) gtk_widget_set_sensitive(export, sensitive);
2116 	if(GTK_IS_WIDGET(mm)) gtk_widget_set_sensitive(mm, sensitive);
2117 	if(GTK_IS_WIDGET(sm)) gtk_widget_set_sensitive(sm, sensitive);
2118 	if(GTK_IS_WIDGET(origMolecule)) gtk_widget_set_sensitive(origMolecule, sensitive);
2119 	if(GTK_IS_WIDGET(dipoleCharges)) gtk_widget_set_sensitive(dipoleCharges, sensitive);
2120 	if(GTK_IS_WIDGET(charges)) gtk_widget_set_sensitive(charges, sensitive);
2121 	if(GTK_IS_WIDGET(type)) gtk_widget_set_sensitive(type, sensitive);
2122 	if(GTK_IS_WIDGET(typeCharges)) gtk_widget_set_sensitive(typeCharges, sensitive);
2123 	if(GTK_IS_WIDGET(typeCalcul)) gtk_widget_set_sensitive(typeCalcul, sensitive);
2124 	if(GTK_IS_WIDGET(chargesZero)) gtk_widget_set_sensitive(chargesZero, sensitive);
2125 
2126 	if(NFatoms<1) sensitive = FALSE;
2127 	if(GTK_IS_WIDGET(origAtoms)) gtk_widget_set_sensitive(origAtoms, sensitive);
2128 	if(
2129 			getOperationType()!=SELECTFRAG &&
2130 			getOperationType()!=SELECTRESIDUE &&
2131 			getOperationType()!=SELECTOBJECTS
2132 	)sensitive = FALSE;
2133 	if(GTK_IS_WIDGET(deleteSelectedAtoms)) gtk_widget_set_sensitive(deleteSelectedAtoms, sensitive);
2134 	if(GTK_IS_WIDGET(moveSelectedAtoms)) gtk_widget_set_sensitive(moveSelectedAtoms, sensitive);
2135 	if(GTK_IS_WIDGET(alignSelectedAtoms)) gtk_widget_set_sensitive(alignSelectedAtoms, sensitive);
2136 	if(GTK_IS_WIDGET(alignSelectedAndNotSelectedAtoms)) gtk_widget_set_sensitive(alignSelectedAndNotSelectedAtoms, sensitive);
2137 	if(GTK_IS_WIDGET(copySelectedAtoms)) gtk_widget_set_sensitive(copySelectedAtoms, sensitive);
2138 	if(GTK_IS_WIDGET(setMMTypeOfselectedAtoms)) gtk_widget_set_sensitive(setMMTypeOfselectedAtoms, sensitive);
2139 	if(GTK_IS_WIDGET(setPDBTypeOfselectedAtoms)) gtk_widget_set_sensitive(setPDBTypeOfselectedAtoms, sensitive);
2140 	if(GTK_IS_WIDGET(setResidueNameOfselectedAtoms)) gtk_widget_set_sensitive(setResidueNameOfselectedAtoms, sensitive);
2141 	if(GTK_IS_WIDGET(setSymbolOfselectedAtoms)) gtk_widget_set_sensitive(setSymbolOfselectedAtoms, sensitive);
2142 	if(GTK_IS_WIDGET(setChargeOfselectedAtoms)) gtk_widget_set_sensitive(setChargeOfselectedAtoms, sensitive);
2143 	if(GTK_IS_WIDGET(scaleChargeOfselectedAtoms)) gtk_widget_set_sensitive(scaleChargeOfselectedAtoms, sensitive);
2144 	if(GTK_IS_WIDGET(resetSelectedConnections)) gtk_widget_set_sensitive(resetSelectedConnections, sensitive);
2145 	if(GTK_IS_WIDGET(resetSelectedAndNotSelectedConnections)) gtk_widget_set_sensitive(resetSelectedAndNotSelectedConnections, sensitive);
2146 
2147 
2148 	sensitive = TRUE;
2149   	if(Natoms<2) sensitive = FALSE;
2150 	if(GTK_IS_WIDGET(resetAllConnections)) gtk_widget_set_sensitive(resetAllConnections, sensitive);
2151 	if(GTK_IS_WIDGET(resetMultipleConnections)) gtk_widget_set_sensitive(resetMultipleConnections, sensitive);
2152 	if(GTK_IS_WIDGET(so)) gtk_widget_set_sensitive(so, sensitive);
2153 
2154 	sensitive = TRUE;
2155 	if(NFatoms<2) sensitive = FALSE;
2156 	if(GTK_IS_WIDGET(pax)) gtk_widget_set_sensitive(pax, sensitive);
2157 	if(GTK_IS_WIDGET(paz)) gtk_widget_set_sensitive(paz, sensitive);
2158 
2159 	sensitive = TRUE;
2160 	if(NFatoms<1) sensitive = FALSE;
2161 	if(GTK_IS_WIDGET(fixedAtoms)) gtk_widget_set_sensitive(fixedAtoms, sensitive);
2162 	if(GTK_IS_WIDGET(variableAtoms)) gtk_widget_set_sensitive(variableAtoms, sensitive);
2163 
2164 	sensitive = TRUE;
2165   	if(Natoms<1) sensitive = FALSE;
2166 	if(NFatoms<1) sensitive = FALSE;
2167 	if(GTK_IS_WIDGET(layerHigh)) gtk_widget_set_sensitive(layerHigh, sensitive);
2168 	if(GTK_IS_WIDGET(invertSelection)) gtk_widget_set_sensitive(invertSelection, sensitive);
2169 	if(GTK_IS_WIDGET(unSelectAll)) gtk_widget_set_sensitive(unSelectAll, sensitive);
2170 	if(GTK_IS_WIDGET(sosns)) gtk_widget_set_sensitive(sosns, sensitive);
2171   	if(Natoms<2) sensitive = FALSE;
2172 	if(GTK_IS_WIDGET(layerMedium)) gtk_widget_set_sensitive(layerMedium, sensitive);
2173 	if(GTK_IS_WIDGET(layerLow)) gtk_widget_set_sensitive(layerLow, sensitive);
2174 
2175 	 sensitive = TRUE;
2176 	if(getNumberOfGroups()<1) sensitive = FALSE;
2177 	if(GTK_IS_WIDGET(addPersonnalFragment)) gtk_widget_set_sensitive(addPersonnalFragment, sensitive);
2178 	if(GTK_IS_WIDGET(removePersonnalFragment)) gtk_widget_set_sensitive(removePersonnalFragment, sensitive);
2179 	if(GTK_IS_WIDGET(removeAGroup)) gtk_widget_set_sensitive(removeAGroup, sensitive);
2180 
2181 }
2182 /*********************************************************************************************************************/
popup_menu_geom(guint button,guint32 time)2183 gboolean popup_menu_geom(guint button, guint32 time)
2184 {
2185 	GtkWidget *menu = gtk_ui_manager_get_widget (manager, "/MenuGeom");
2186 	if (GTK_IS_MENU (menu))
2187 	{
2188 		set_sensitive();
2189 		gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, button, time);
2190 		return TRUE;
2191 	}
2192 	else printf(_("Error menu is not a menu\n"));
2193 	return FALSE;
2194 }
2195 /*******************************************************************************************************************************/
2196 /*
2197 static void free_id_list(GObject* win, gchar* groupName)
2198 {
2199 	GSList* listOfId = NULL;
2200 	if(!G_IS_OBJECT(manager)) return;
2201 	listOfId = g_object_get_data(G_OBJECT(manager),groupName);
2202 	if(!listOfId) return;
2203 	g_slist_free(listOfId);
2204 }
2205 void add_a_personal_group_to_menu(gchar* groupName)
2206 {
2207 	guint  merge_id;
2208 	GtkActionGroup *dag = NULL;
2209 	GtkActionEntry *actionEntry;
2210 	gchar* name;
2211 	gchar* label;
2212 	gchar* tmp;
2213 	gchar* dagName = g_strdup_printf("PersonalFragmentsActions%s", groupName);
2214 	GSList* listOfId = g_slist_alloc();
2215 
2216 	if(!manager) return;
2217 	merge_id = gtk_ui_manager_new_merge_id (GTK_UI_MANAGER (manager));
2218 
2219 	dag = gtk_action_group_new (dagName);
2220 	gtk_action_group_set_translation_domain(dag,GETTEXT_PACKAGE);
2221 	gtk_ui_manager_insert_action_group (manager, dag, 0);
2222   	g_signal_connect_swapped (GeomDlg, "destroy", G_CALLBACK (g_object_unref), dag);
2223   	g_signal_connect(GeomDlg, "destroy", G_CALLBACK (free_id_list), groupName);
2224 
2225 	name = g_strdup_printf("%s", groupName);
2226 	label = g_strdup_printf ("%s", groupName);
2227 
2228 	actionEntry = g_malloc(sizeof(GtkActionEntry));
2229 	actionEntry->name = name;
2230 	actionEntry->stock_id = NULL;
2231 	actionEntry->label = label;
2232 	actionEntry->accelerator = NULL;
2233 	actionEntry->tooltip = NULL;
2234 	actionEntry->callback = NULL;
2235         gtk_action_group_add_actions (dag, actionEntry, 1, NULL);
2236 
2237 	tmp = g_strdup_printf("/MenuGeom/Edit/PersonalFragments");
2238 	gtk_ui_manager_add_ui(GTK_UI_MANAGER (manager), merge_id, tmp, groupName, groupName, GTK_UI_MANAGER_MENU, FALSE);
2239 	g_free(tmp);
2240 
2241 	listOfId = g_slist_prepend(listOfId, GUINT_TO_POINTER(merge_id));
2242 	g_object_set_data(G_OBJECT(manager),groupName,listOfId);
2243 	g_object_set_data(G_OBJECT(manager),dagName,dag);
2244 
2245 	g_free(dagName);
2246 
2247 	gtk_ui_manager_ensure_update (manager);
2248 }
2249 void delete_a_personal_group_from_menu(gchar* groupName)
2250 {
2251 	GSList* listOfId = NULL;
2252 	gchar* dagName = NULL;
2253 	GtkActionGroup *dag = NULL;
2254 	guint merge_id;
2255 	GSList*  list = NULL;
2256 
2257 	if(!manager) return;
2258 
2259 	listOfId = g_object_get_data(G_OBJECT(manager),groupName);
2260 	if(!listOfId) return;
2261 
2262 	dagName = g_strdup_printf("PersonalFragmentsActions%s", groupName);
2263 	dag = g_object_get_data(G_OBJECT(manager), dagName);
2264 	g_free(dagName);
2265 
2266 	list =   listOfId;
2267 	while(list != NULL)
2268 	{
2269 		merge_id = GPOINTER_TO_INT(list->data);
2270 		if(merge_id != 0) gtk_ui_manager_remove_ui(GTK_UI_MANAGER (manager), merge_id);
2271 		list = list->next;
2272 	}
2273 	if(dag)
2274 	{
2275 		gtk_ui_manager_remove_action_group (GTK_UI_MANAGER (manager), dag);
2276 	}
2277 	gtk_ui_manager_ensure_update (manager);
2278 }
2279 static void activate_add_personal_fragment (GtkAction *action, gpointer data)
2280 {
2281 	gchar* nameFrag = NULL;
2282 
2283 	if(data) nameFrag = (gchar*) data;
2284 	if(nameFrag)
2285 	{
2286 		addPersonalFragment(nameFrag, 0, NULL);
2287 	}
2288 
2289 }
2290 void add_a_personnal_fragement_to_menu(gchar* groupName,gchar* fragName)
2291 {
2292 	const gchar* menuBase = "Edit/PersonalFragments";
2293 	guint  merge_id;
2294 	static GtkActionGroup *dag = NULL;
2295 	GtkActionEntry *actionEntry;
2296 	GtkAction *action;
2297 	gchar* name;
2298 	gchar* label;
2299 	gchar* data;
2300 	GList*  listOfActions = NULL;
2301 	GList*  list = NULL;
2302 	gint i;
2303 	gchar* tmp;
2304 	GSList* listOfId = NULL;
2305 
2306 	if(!manager) return;
2307 	merge_id = gtk_ui_manager_new_merge_id (GTK_UI_MANAGER (manager));
2308 
2309 	if(!dag)
2310 	{
2311 		dag = gtk_action_group_new ("FragmentsActions");
2312 		gtk_action_group_set_translation_domain(dag,GETTEXT_PACKAGE);
2313 		gtk_ui_manager_insert_action_group (manager, dag, 0);
2314   		g_signal_connect (GeomDlg, "destroy", G_CALLBACK (delete_dag), &dag);
2315 	}
2316 	listOfActions =   gtk_action_group_list_actions(dag);
2317 	i = 0;
2318 	list = listOfActions;
2319 	tmp = g_strdup_printf("%s%s", groupName, fragName);
2320 	while(list != NULL)
2321 	{
2322 		G_CONST_RETURN gchar* nameAction;
2323 		action = (GtkAction *)(list->data);
2324 		if(!GTK_IS_ACTION(action)) break;
2325 		nameAction = gtk_action_get_name(GTK_ACTION(action));
2326 		if(strstr(nameAction,tmp)) i++;
2327 		list = list->next;
2328 	}
2329 	g_free(tmp);
2330 	if(i==0)
2331 	{
2332 		name = g_strdup_printf("%s%s", groupName, fragName);
2333 		label = g_strdup_printf ("%s", fragName);
2334 		data = g_strdup_printf("%s/%s", groupName, fragName);
2335 	}
2336 	else
2337 	{
2338 		name = g_strdup_printf("%s%s%d", groupName, fragName,i);
2339 		label = g_strdup_printf ("%s%d", fragName,i);
2340 		data = g_strdup_printf("%s/%s%d", groupName, fragName,i);
2341 	}
2342 	actionEntry = g_malloc(sizeof(GtkActionEntry));
2343 	actionEntry->name = name;
2344 	actionEntry->stock_id = NULL;
2345 	actionEntry->label = label;
2346 	actionEntry->accelerator = NULL;
2347 	actionEntry->tooltip = NULL;
2348 	actionEntry->callback = G_CALLBACK(activate_add_personal_fragment);
2349         gtk_action_group_add_actions (dag, actionEntry, 1, data);
2350 
2351 
2352 	tmp = g_strdup_printf("/MenuGeom/%s/%s", menuBase, groupName);
2353 	gtk_ui_manager_add_ui(GTK_UI_MANAGER (manager), merge_id, tmp, name, name, GTK_UI_MANAGER_MENUITEM, TRUE);
2354 	g_free(tmp);
2355 
2356 	listOfId = g_object_get_data(G_OBJECT(manager),groupName);
2357 	if(listOfId)
2358 	{
2359 		listOfId = g_slist_prepend(listOfId, GUINT_TO_POINTER(merge_id));
2360 		g_object_set_data(G_OBJECT(manager),groupName,listOfId);
2361 	}
2362 	g_object_set_data(G_OBJECT(manager),name,GUINT_TO_POINTER(merge_id));
2363 
2364 	gtk_ui_manager_ensure_update (manager);
2365 
2366 }
2367 void delete_a_personal_fragment_from_menu(gchar* groupName,gchar* fragName)
2368 {
2369 	GSList* listOfId = NULL;
2370 	guint merge_id;
2371 	GSList*  list = NULL;
2372 	gpointer id;
2373 	guint myId;
2374 	gchar* name = NULL;
2375 
2376 	if(!manager) return;
2377 
2378 	name = g_strdup_printf("%s%s", groupName, fragName);
2379 	id = g_object_get_data(G_OBJECT(manager),name);
2380 	g_free(name);
2381 	if(!id) return;
2382 
2383 	myId = GPOINTER_TO_INT(id);
2384 	if(myId == 0) return;
2385 
2386 	listOfId = g_object_get_data(G_OBJECT(manager),groupName);
2387 	if(!listOfId) return;
2388 
2389 	list =   listOfId;
2390 	while(list != NULL)
2391 	{
2392 		merge_id = GPOINTER_TO_INT(list->data);
2393 		if(merge_id != 0 && merge_id == myId ) list->data = 0;
2394 		list = list->next;
2395 	}
2396 	gtk_ui_manager_remove_ui(GTK_UI_MANAGER (manager), myId);
2397 	gtk_ui_manager_ensure_update (manager);
2398 }
2399 */
2400