File xmakemol-zoom.patch of Package xmakemol
--- A/xmakemol.c 2007-08-25 13:20:18.000000000 +0200
+++ B/xmakemol.c 2013-11-22 22:41:52.834309782 +0100
@@ -114,6 +114,10 @@
<Btn3Down>: track(6) \n\
<Btn3Motion>: track(7) \n\
<Btn3Up>: track(8) \n\
+ <Key>x: track(27) \n\
+ <Key>y: track(28) \n\
+ <Key>+: track(27) \n\
+ <Key>-: track(28) \n\
<Key><: frame_key(prev) \n\
<Key>>: frame_key(next) \n\
<Key>^: frame_key(start)";
--- A/track.c 2007-08-25 13:20:18.000000000 +0200
+++ B/track.c 2013-11-22 22:41:52.834309782 +0100
@@ -83,7 +83,9 @@
SHIFT_TWO_UP,
SHIFT_THREE_DOWN,
SHIFT_THREE_MOTION,
- SHIFT_THREE_UP
+ SHIFT_THREE_UP,
+ ZOOM_IN,
+ ZOOM_OUT
} mouse_translation;
void
@@ -166,6 +168,8 @@
void xy_translation (void); /* Translate in XY plane */
void z_translation (void); /* Translate along Z */
+ void z_translation1 (void); /* Translate along Z */
+ void z_translation2 (void); /* Translate along Z */
void select_atom_for_edit (void);
void region_set_start (XButtonEvent *);
@@ -263,6 +267,12 @@
break;
case SHIFT_THREE_UP:
break;
+ case ZOOM_IN:
+ z_translation1 ();
+ break;
+ case ZOOM_OUT:
+ z_translation2 ();
+ break;
}
}
}
@@ -438,6 +448,39 @@
}
+void z_translation1 (void)
+{
+
+ double get_canvas_scale(void);
+ void set_canvas_scale (double);
+ void canvas_cb(Widget, XtPointer, XtPointer);
+ void reset_pers_scales(void);
+
+ double scale = get_canvas_scale()*1.1;
+ if (scale > 1023.0) scale = 1023.0;
+ if (scale < 0.1) scale = 0.1;
+ set_canvas_scale (scale);
+ redraw = 1;
+ canvas_cb (canvas, NULL, NULL);
+ reset_pers_scales();
+}
+void z_translation2 (void)
+{
+
+ double get_canvas_scale(void);
+ void set_canvas_scale (double);
+ void canvas_cb(Widget, XtPointer, XtPointer);
+ void reset_pers_scales(void);
+
+ double scale = get_canvas_scale()*0.8888;
+ if (scale > 1023.0) scale = 1023.0;
+ if (scale < 0.1) scale = 0.1;
+ set_canvas_scale (scale);
+ redraw = 1;
+ canvas_cb (canvas, NULL, NULL);
+ reset_pers_scales();
+}
+
void
select_atom_for_edit (void)