1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196
|
/*
Copyright (C) 2003 by Sean David Fleming
sean@ivec.org
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
The GNU GPL can also be found at http://www.gnu.org
*/
/* spacing */
#define PANEL_SPACING 4
/* sub windows */
#define W_BORDER 5
#define H_BORDER 5
/* graphics window defs */
#define START_WIDTH 640
#define START_HEIGHT 600
#define MIN_WIDTH 200
#define MIN_HEIGHT 200
/* use GTKGL_ as GL_ are often reserved by OpenGL */
#define GTKGL_DIM 600
#define GTKGL_LINE_WIDTH 1.5
/* angle drawing */
#define MIN_ARC_RAD 15
#define PIX2SCALE 0.005
/* Added by C. Fisher 2004 */
#define MAXIMUM(x,y) ((x>y)?x:y)
/* main operation modes */
enum
{
FREE, XLAT, ROLL, YAW, PITCH, LOCKED, QUIT,
SELECT_FRAGMENT,
CREATE_RIBBON,
ATOM_ADD, ATOM_CHANGE_TYPE,
BOND_NORMAL, BOND_SPLIT,
BOND_DELETE, BOND_SINGLE, BOND_DOUBLE, BOND_TRIPLE, BOND_HBOND, BOND_ZEOLITE,
BOND_INFO, DIST_INFO, ANGLE_INFO, DIHEDRAL_INFO,
DEFINE_RIBBON, DEFINE_VECTOR, DEFINE_PLANE,
ANIMATING, RECORD
};
/* widget & file/package types */
/* including dialog request types */
enum
{
GDIS, SGINFO, SYMMETRY, GPERIODIC, ELEM_EDIT, POVRAY, GENSURF,
ABOUT, ANIM, SURF, DISPLAY, GEOMETRY, SPATIAL, TASKMAN, MANUAL, SETUP,
FILE_SELECT, FILE_LOAD, FILE_SAVE, FILE_SAVE_AS,
NODATA, DATA, BIOSYM, CIF, FDF, GULP, MONTY, MARVIN, MORPH, XML, XTL, XYZ,
AUTO, CSSR, GAMOUT, PDB, GEOMVIEW_OFF, PROJECT, DOCKING,
MDI, CREATOR, MVNOUT, GULPOUT, GULP_TRJ, SIESTA_OUT,
REPLACE_ATOMS, DYNAMICS, ZMATRIX,
OPENGL, OPENGL_OPTIONS, GAMESS, GAMESS_OUT, DIFFAX, DIFFAX_INP, DMOL_INPUT,
ABINIT, ABINIT_OUT, NWCHEM, NWCHEM_OUT, CASTEP, CASTEP_OUT, GAUSS, GAUSS_OUT,
HIRSHFELD, CONNECT, RDF, LIQUIDS, VACF, MD_ANALYSIS,
PICTURE, RIETICA, CEL, DLPOLY, CRYSTAL_GRAPH, BIOGRAF, DLP,
LAST
};
/* model display features */
enum
{
PLANE_LABELS, ASYM_TOGGLE,
ATOM_LABELS, FRAME, MESH, SHELLS, AXES_TYPE,
PBC_CONFINE_NONE, PBC_CONFINE_ATOMS, PBC_CONFINE_MOLS
};
/* switch_view() call modes */
enum {CANVAS_INIT, CANVAS_SINGLE, CANVAS_VSPLIT, CANVAS_HSPLIT, CANVAS_HVSPLIT,
PREV_MODEL, NEXT_MODEL};
/* view actions */
enum {ROTATION, UPDATE_X, UPDATE_Y, UPDATE_Z};
enum {GUI_CANVAS, GUI_MODEL_TREE, GUI_MODEL_PROPERTIES, GUI_TEXT_BUFFER};
/* prototypes */
/* main */
void gui_init(void);
gint gui_motion_event(GtkWidget *, GdkEventMotion *);
gint gui_press_event(GtkWidget *, GdkEventButton *);
gint gui_scroll_event(GtkWidget *, GdkEventScroll *);
gint gui_release_event(GtkWidget *, GdkEventButton *);
/* display control */
void gui_mode_switch(gint);
void gtk_mode_switch(GtkWidget *, gint);
void gui_text_show(gint, gchar *);
void gui_model_select(struct model_pak *);
void gui_angles_refresh(void);
void gui_angles_reset(void);
void gui_camera_refresh(void);
/* model tree */
void tree_select_delete(void);
void tree_select_active(void);
void tree_select_model(struct model_pak *);
void tree_model_add(struct model_pak *);
void tree_model_refresh(struct model_pak *);
void tree_init(GtkWidget *);
/* NEW: export edit_model_create for use in button toolbar */
void edit_model_create(void);
void diffract_select_peak(gint, gint, struct model_pak *);
void analysis_export_dialog(void);
void symmetry_widget_redraw(void);
void image_export_dialog(void);
void image_import_dialog(void);
void image_write(gpointer);
void gui_animate_dialog(void);
void gui_diffract_dialog(void);
void gui_gamess_widget(GtkWidget *, struct model_pak *);
void gui_gulp_task(GtkWidget *, struct model_pak *);
void gui_gamess_task(GtkWidget *, struct model_pak *);
void gui_measure_dialog(void);
void gui_edit_dialog(void);
void gui_analysis_dialog(void);
void gui_isosurf_dialog(void);
void gui_gperiodic_dialog(void);
void gui_render_dialog(void);
void gui_mdi_dialog(void);
void gui_help_dialog(void);
void gui_dock_dialog(void);
void gui_defect_dialog(void);
void gui_setup_dialog(void);
void gui_siesta_dialog(void);
void gui_surface_widget(GtkWidget *);
void gui_surface_setup(GtkWidget *);
void gui_surface_refresh(GtkWidget *);
void gui_edit_widget(GtkWidget *);
void gui_display_widget(GtkWidget *);
void gui_symmetry_refresh(GtkWidget *);
void gui_active_refresh(void);
void gui_view_x(void);
void gui_view_y(void);
void gui_view_z(void);
void gui_view_a(void);
void gui_view_b(void);
void gui_view_c(void);
void canvas_new(gint, gint, gint, gint);
void canvas_init(GtkWidget *);
void canvas_shuffle(void);
void canvas_single(void);
void canvas_create(void);
void canvas_delete(void);
void canvas_resize(void);
void canvas_select(gint, gint);
gpointer canvas_find(struct model_pak *);
void help_init(void);
void redraw_canvas(gint);
gint gui_canvas_handler(gpointer *);
gint gui_widget_handler(void);
void gui_refresh(gint);
void gui_refresh_selection(void);
gpointer camera_new(void);
gpointer camera_dup(gpointer);
void camera_copy(gpointer, gpointer);
void camera_init(struct model_pak *);
void camera_dump(gpointer);
void camera_view(gdouble *, gpointer);
void camera_waypoint_animate(gint, gint, struct model_pak *);
void camera_rotate_animate(gint, gdouble *, gint, struct model_pak *);
gdouble *camera_q(gpointer);
void camera_rescale(gdouble, gpointer);
|