1 
2 /*
3 A* -------------------------------------------------------------------
4 B* This file contains source code for the PyMOL computer program
5 C* copyright 1998-2000 by Warren Lyford Delano of DeLano Scientific.
6 D* -------------------------------------------------------------------
7 E* It is unlawful to modify or remove this copyright notice.
8 F* -------------------------------------------------------------------
9 G* Please see the accompanying LICENSE file for further information.
10 H* -------------------------------------------------------------------
11 I* Additional authors of this source file include:
12 -*
13 -*
14 -*
15 Z* -------------------------------------------------------------------
16 */
17 #ifndef _H_ButMode
18 #define _H_ButMode
19 
20 #include"Ortho.h"
21 #include"Word.h"
22 
23 #define cButModeNothing -1
24 
25 #define cButModeRotXYZ   0
26 #define cButModeTransXY  1
27 #define cButModeTransZ   2
28 #define cButModeClipNF   3
29 #define cButModeRotZ     4
30 #define cButModeClipN    5
31 #define cButModeClipF    6
32 #define cButModeLB       7
33 #define cButModeMB       8
34 #define cButModeRB       9
35 #define cButModeAddToLB 10
36 #define cButModeAddToMB 11
37 #define cButModeAddToRB 12
38 #define cButModePickAtom 13
39 #define cButModePickBond 14
40 #define cButModeRotFrag  15
41 #define cButModeTorFrag  16
42 #define cButModeMovFrag  17
43 #define cButModeOrigAt   18
44 #define cButModeRectAdd  19
45 #define cButModeRectSub  20
46 #define cButModeRect     21
47 #define cButModeNone     22
48 #define cButModeCent     23
49 #define cButModePkTorBnd 24
50 #define cButModeScaleSlab 25
51 #define cButModeMoveSlab  26
52 #define cButModePickAtom1 27
53 #define cButModeMoveAtom 28
54 #define cButModeMenu     29
55 
56 #define cButModeSeleSet  30
57 #define cButModeSeleToggle 31
58 #define cButModeSeleAddBox  32
59 #define cButModeSeleSubBox  33
60 #define cButModeMoveSlabAndZoom 34
61 
62 
63 /* simple click action for JyMOL -- no selections involved */
64 
65 #define cButModeSimpleClick 35
66 
67 
68 /* new drag actions */
69 
70 #define cButModeRotDrag 36
71 #define cButModeMovDrag 37
72 #define cButModeMovDragZ 38
73 
74 #define cButModeRotObj 39
75 #define cButModeMovObj 40
76 #define cButModeMovObjZ 41
77 #define cButModeMovFragZ 42
78 #define cButModeMoveAtomZ 43
79 #define cButModeDragMol  44
80 
81 #define cButModeRotView 45
82 #define cButModeMovView 46
83 #define cButModeMovViewZ 47
84 
85 #define cButModePotentialClick 48
86 #define cButModeDragObj 49
87 
88 #define cButModeInvMoveSlabAndZoom 50
89 #define cButModeInvTransZ 51
90 
91 #define cButModeSeleSetBox  52
92 
93 #define cButModeInvRotZ  53
94 
95 /* light editing */
96 
97 #define cButModeRotL 54
98 #define cButModeMovL 55
99 #define cButModeMvzL 56
100 
101 #define cButModeCount       57
102 
103 
104 /* remainder only used in scene... */
105 
106 #define cButModeScaleSlabShrink 101
107 #define cButModeScaleSlabExpand 102
108 #define cButModeMoveSlabForward 103
109 #define cButModeMoveSlabBackward 104
110 #define cButModeMoveSlabAndZoomForward 105
111 #define cButModeMoveSlabAndZoomBackward 106
112 #define cButModeZoomForward 107
113 #define cButModeZoomBackward 108
114 
115 
116 /* conversion */
117 
118 #define cButModeLeftNone   0
119 #define cButModeMiddleNone 1
120 #define cButModeRightNone  2
121 
122 #define cButModeLeftShft   3
123 #define cButModeMiddleShft 4
124 #define cButModeRightShft  5
125 
126 #define cButModeLeftCtrl   6
127 #define cButModeMiddleCtrl 7
128 #define cButModeRightCtrl  8
129 
130 #define cButModeLeftCtSh   9
131 #define cButModeMiddleCtSh 10
132 #define cButModeRightCtSh  11
133 
134 #define cButModeWheelNone  12
135 #define cButModeWheelShft  13
136 #define cButModeWheelCtrl  14
137 #define cButModeWheelCtSh  15
138 
139 #define cButModeLeftDouble   16
140 #define cButModeMiddleDouble 17
141 #define cButModeRightDouble  18
142 #define cButModeLeftSingle   19
143 #define cButModeMiddleSingle 20
144 #define cButModeRightSingle  21
145 
146 #define cButModeLeftShftDouble    22
147 #define cButModeMiddleShftDouble  23
148 #define cButModeRightShftDouble   24
149 #define cButModeLeftShftSingle    25
150 #define cButModeMiddleShftSingle  26
151 #define cButModeRightShftSingle   27
152 
153 #define cButModeLeftCtrlDouble    28
154 #define cButModeMiddleCtrlDouble  29
155 #define cButModeRightCtrlDouble   30
156 #define cButModeLeftCtrlSingle    31
157 #define cButModeMiddleCtrlSingle  32
158 #define cButModeRightCtrlSingle   33
159 
160 #define cButModeLeftCtShDouble    34
161 #define cButModeMiddleCtShDouble  35
162 #define cButModeRightCtShDouble   36
163 #define cButModeLeftCtShSingle    37
164 #define cButModeMiddleCtShSingle  38
165 #define cButModeRightCtShSingle   39
166 
167 #define cButModeLeftAltDouble     40
168 #define cButModeMiddleAltDouble   41
169 #define cButModeRightAltDouble    42
170 #define cButModeLeftAltSingle     43
171 #define cButModeMiddleAltSingle   44
172 #define cButModeRightAltSingle    45
173 
174 #define cButModeLeftAltShftDouble    46
175 #define cButModeMiddleAltShftDouble  47
176 #define cButModeRightAltShftDouble   48
177 #define cButModeLeftAltShftSingle    49
178 #define cButModeMiddleAltShftSingle  50
179 #define cButModeRightAltShftSingle   51
180 
181 #define cButModeLeftCtrlAltDouble    52
182 #define cButModeMiddleCtrlAltDouble  53
183 #define cButModeRightCtrlAltDouble   54
184 #define cButModeLeftCtrlAltSingle    55
185 #define cButModeMiddleCtrlAltSingle  56
186 #define cButModeRightCtrlAltSingle   57
187 
188 #define cButModeLeftCtrlAltShftDouble    58
189 #define cButModeMiddleCtrlAltShftDouble  59
190 #define cButModeRightCtrlAltShftDouble   60
191 #define cButModeLeftCtrlAltShftSingle    61
192 #define cButModeMiddleCtrlAltShftSingle  62
193 #define cButModeRightCtrlAltShftSingle   63
194 
195 #define cButModeWheelAlt   64
196 #define cButModeWheelAltShft 65
197 #define cButModeWheelCtrlAlt  66
198 #define cButModeWheelCtrlAltShft  67
199 
200 #define cButModeLeftAlt    68
201 #define cButModeMiddleAlt  69
202 #define cButModeRightAlt   70
203 
204 #define cButModeLeftAltShft 71
205 #define cButModeMiddleAltShft 72
206 #define cButModeRightAltShft 73
207 
208 #define cButModeLeftCtrlAlt  74
209 #define cButModeMiddleCtrlAlt 75
210 #define cButModeRightCtrlAlt 76
211 
212 #define cButModeLeftCtrlAltShft 77
213 #define cButModeMiddleCtrlAltShft 78
214 #define cButModeRightCtrlAltShft 79
215 
216 #define cButModeInputCount 80
217 
218 typedef char CodeType[10];
219 
220 int ButModeInit(PyMOLGlobals * G);
221 void ButModeFree(PyMOLGlobals * G);
222 Block *ButModeGetBlock(PyMOLGlobals * G);
223 void ButModeSetRate(PyMOLGlobals * G, float renderTime);
224 void ButModeResetRate(PyMOLGlobals * G);
225 int ButModeGet(PyMOLGlobals * G, int button);
226 void ButModeSet(PyMOLGlobals * G, int button, int action);
227 int ButModeTranslate(PyMOLGlobals * G, int button, int mod);
228 int ButModeCheckPossibleSingleClick(PyMOLGlobals * G, int button, int mod);
229 int ButModeGetHeight(PyMOLGlobals * G);
230 
231 #endif
232