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