|
NCBI Home IEB Home C Toolkit docs C++ Toolkit source browser C Toolkit source browser (2) |
NCBI C Toolkit Cross ReferenceC/ddv/ddvmain.h |
source navigation diff markup identifier search freetext search file search |
1 /* $Id: ddvmain.h,v 1.44 2000/07/17 13:32:33 lewisg Exp $
2 * ===========================================================================
3 *
4 * PUBLIC DOMAIN NOTICE
5 * National Center for Biotechnology Information (NCBI)
6 *
7 * This software/database is a "United States Government Work" under the
8 * terms of the United States Copyright Act. It was written as part of
9 * the author's official duties as a United States Government employee and
10 * thus cannot be copyrighted. This software/database is freely available
11 * to the public for use. The National Library of Medicine and the U.S.
12 * Government do not place any restriction on its use or reproduction.
13 * We would, however, appreciate having the NCBI and the author cited in
14 * any work or product based on this material
15 *
16 * Although all reasonable efforts have been taken to ensure the accuracy
17 * and reliability of the software and data, the NLM and the U.S.
18 * Government do not and cannot warrant the performance or results that
19 * may be obtained by using this software or data. The NLM and the U.S.
20 * Government disclaim all warranties, express or implied, including
21 * warranties of performance, merchantability or fitness for any particular
22 * purpose.
23 *
24 * ===========================================================================
25 *
26 * File Name: ddvmain.h
27 *
28 * Author: Patrick Durand
29 *
30 * Version Creation Date: 06/19/99
31 *
32 * $Revision: 1.44 $
33 *
34 * File Description:
35 *
36 * Modifications:
37 * --------------------------------------------------------------------------
38 * $Log: ddvmain.h,v $
39 * Revision 1.44 2000/07/17 13:32:33 lewisg
40 * move DDV_args out of the library
41 *
42 * Revision 1.43 2000/07/17 12:38:53 kans
43 * DDV_myargs is extern in header, instantiated in ddvpanel.c, since it is accessed from that library file
44 *
45 * Revision 1.42 2000/07/14 22:24:56 lewisg
46 * fix scroll, click, visual c++ build bugs. add command line arg parse to ddv
47 *
48 * Revision 1.41 2000/07/12 22:22:42 hurwitz
49 * added delete block to DDV
50 *
51 * Revision 1.40 2000/07/10 14:38:07 lewisg
52 * move seqalign and sequentry data from window to panels
53 *
54 * Revision 1.39 2000/07/08 20:43:58 vakatov
55 * Get all "#include" out of the 'extern "C" { }' scope; other cleanup...
56 *
57 * Revision 1.38 2000/07/05 19:23:13 lewisg
58 * add two panes to ddv, update msvc project files
59 *
60 * Revision 1.37 2000/07/05 18:42:16 hurwitz
61 * added split block function to DDV
62 *
63 * Revision 1.36 2000/06/30 22:31:51 hurwitz
64 * added merge block function for DDV
65 *
66 * Revision 1.35 2000/06/27 20:46:38 hurwitz
67 * fixed bugs with select rectangle, added select row option
68 *
69 * Revision 1.34 2000/06/15 17:33:18 hurwitz
70 * used view seqAlignPtr to get original (bug fix), and started working on left/right/center justify for DDE
71 *
72 * Revision 1.33 2000/05/19 13:48:31 hurwitz
73 * made a version of DDE that doesn't allow aligned gaps, changed wording for adding new rows
74 *
75 * Revision 1.32 2000/05/15 23:39:34 lewisg
76 * shred cblast, add menu items for gapped/ungapped, fix pdbheaders
77 *
78 * Revision 1.31 2000/04/26 21:54:27 hurwitz
79 * added save function to tell AlnMgr about edits made in DDE
80 *
81 * Revision 1.30 2000/04/21 23:00:50 hurwitz
82 * can launch DDE from DDV
83 *
84 * Revision 1.29 2000/04/18 19:50:24 lewisg
85 * add deselect menu item
86 *
87 * Revision 1.28 2000/04/17 13:30:43 durand
88 * removed g_hParent and unused functions DDV_LaunchAlignViewer and DDV_LaunchAlignEditor
89 *
90 * Revision 1.27 2000/04/10 21:41:26 lewisg
91 * move alignment menus into ddv, udv from cn3d
92 *
93 * Revision 1.26 2000/04/10 20:58:42 hurwitz
94 * added GUI controls for DeleteBlock in DDE
95 *
96 * Revision 1.25 2000/04/07 16:21:08 hurwitz
97 * made delete block faster, added delete block to edit menu
98 *
99 * Revision 1.24 2000/03/27 22:15:05 lewisg
100 * add show/hide row dialog
101 *
102 * Revision 1.23 2000/03/25 00:22:09 hurwitz
103 * put DDE_StackPtr in DDV_Main, add to stack inside DDE api's, added insert char, delete char, home and end keyboard control
104 *
105 * Revision 1.22 2000/03/14 22:08:21 hurwitz
106 * undo and redo working properly, restore-original function added
107 *
108 * Revision 1.21 2000/03/10 23:01:43 hurwitz
109 * added undo and redo functions, first pass
110 *
111 * Revision 1.20 2000/03/06 22:45:58 hurwitz
112 * can shift right boundary of an aligned block left and right, DDVRuler updates added
113 *
114 * Revision 1.19 2000/03/01 22:49:41 lewisg
115 * import bioseq, neatlyindex, get rid of dead code
116 *
117 * Revision 1.18 2000/02/04 16:05:41 durand
118 * add click action to select a row
119 *
120 * Revision 1.17 2000/01/26 13:38:55 durand
121 * update the GUI for the editor. Add functions to create the data to be used by the editor
122 *
123 * Revision 1.16 2000/01/12 21:52:17 durand
124 * add import function; update menus when DDV is loaded from Cn3D
125 *
126 * Revision 1.15 2000/01/11 15:05:23 durand
127 * remove network stuff
128 *
129 * Revision 1.14 2000/01/10 15:09:45 durand
130 * Use Entrez instead of ID1
131 *
132 * Revision 1.13 1999/12/20 20:20:41 lewisg
133 * allow cn3d to do color and ddv to do case when both are running
134 *
135 * Revision 1.12 1999/12/07 21:40:14 durand
136 * add mouse modes menu and caret facility for the editor
137 *
138 * Revision 1.11 1999/12/03 23:17:23 lewisg
139 * Patrick's new global update msg, argument passing when launching ddv, experimental editing
140 *
141 * Revision 1.10 1999/11/29 15:26:25 durand
142 * designed a new GUI to fix problems under MacOS, Linux and SGI
143 *
144 * Revision 1.9 1999/11/09 17:09:00 durand
145 * transfer some functions from ddvgraph to ddvcreate, so that ddvcreate remains Vibrant free and can be compiled with BLAST
146 *
147 * Revision 1.8 1999/11/03 21:29:48 durand
148 * add CTRL and SHFT keys for mouse selection. redesign the loader functions of DDV to properly register the message callbacks
149 *
150 * Revision 1.7 1999/10/29 14:15:40 durand
151 * add simple mouse selection functions
152 *
153 * Revision 1.6 1999/10/23 14:54:34 durand
154 * resolve external symbol g_hParent
155 *
156 * Revision 1.5 1999/10/22 20:12:47 durand
157 * add Export command (text, HTML and Phylip formats)
158 *
159 * Revision 1.4 1999/10/22 14:19:43 durand
160 * update the code for the startup functions of DDV drawing panel
161 *
162 * Revision 1.3 1999/10/20 13:17:19 durand
163 * add display for disc. SeqAlign tails
164 *
165 * Revision 1.2 1999/10/15 21:57:36 durand
166 * add a UI for display options
167 *
168 * Revision 1.1 1999/09/30 14:10:27 durand
169 * add ddv to toolkit
170 *
171 * Revision 1.7 1999/09/23 19:06:50 lewisg
172 * increase maxtemp number of cached sequences
173 *
174 * Revision 1.6 1999/09/21 14:19:08 durand
175 * add mouse click management layout
176 *
177 * Revision 1.5 1999/09/09 21:55:07 durand
178 * instantiate the Fle|Close command of DDV
179 *
180 * Revision 1.4 1999/07/20 14:58:01 durand
181 * use the Color Manager to display colored MSA
182 *
183 * Revision 1.3 1999/06/30 14:57:21 durand
184 * update DDV loader functions
185 *
186 * Revision 1.2 1999/06/28 22:07:21 durand
187 * add loader functions and clean the code with Lint and Purify
188 *
189 * Revision 1.1 1999/06/19 17:21:07 durand
190 * add Vibrant DDV code
191 *
192 *
193 *
194 * ==========================================================================
195 */
196
197 #ifndef _DDVMAIN_
198 #define _DDVMAIN_
199
200 #include <ncbi.h>
201 #include <vibrant.h>
202 #include <ddvopen.h>
203 #include <pgppop.h>
204 #include <ddvcolor.h>
205 #include <ddvcreate.h>
206
207
208 #ifdef __cplusplus
209 extern "C" {
210 #endif
211
212
213 /******************************************************************************
214
215 ERROR / Information messages from DDV_OPEN module
216
217 ******************************************************************************/
218 #define DVV_MSG_M_OK 1
219
220 /******************************************************************************
221
222 defines
223
224 ******************************************************************************/
225
226 /* maximum number of sequences to hold in memory */
227 #define DDV_MAXTEMP 500
228 /*caret style */
229 #define DDV_CARET_BAR 1
230 /*mouse mode*/
231 #define DDV_MOUSEMODE_QUERY 0
232 #define DDV_MOUSEMODE_SELECT 1
233 #define DDV_MOUSEMODE_EDIT 2
234 #define DDV_MOUSEMODE_CREATEBLOCK 3
235 #define DDV_MOUSEMODE_LAUNCHEDITOR 4
236 #define DDV_MOUSEMODE_SELECT_ONE_ROW 5
237 #define DDV_MOUSEMODE_MERGEBLOCKS1 6
238 #define DDV_MOUSEMODE_MERGEBLOCKS2 7
239 #define DDV_MOUSEMODE_SPLITBLOCK 8
240 #define DDV_MOUSEMODE_DELETEBLOCK 9
241
242 /*timer control*/
243 #define DDV_SET_TIMER 1
244 #define DDV_TEST_TIMER 2
245 /*action associated with the timer*/
246 #define DDV_INVAL_REGION 1
247 #define DDV_NOTHING 2
248
249 /******************************************************************************
250
251 Data structures
252
253 ******************************************************************************/
254 /*used to display the caret (editor mode only)*/
255 typedef struct ddvcaretinfo{
256 Int4 old_row;/*zero-based values; display coordinates*/
257 Int4 old_col;
258 Int4 new_row;/*zero-based values; display coordinates*/
259 Int4 new_col;
260 Uint1 style; /*see DDV_CARET_* defines */
261 } DDVCaretInfo, PNTR DDVCaretInfoPtr;
262
263 /*used to remember the selected row (editor mode only)*/
264 typedef struct ddveditrowinfo{
265 Int4 curEditRow;/*zero-based values; row for applying delete, move*/
266 Int4 curMasterRow;/*zero-based values; this row is the master*/
267 } DDVEditRowInfo, PNTR DDVEditRowInfoPtr;
268
269 typedef struct ddv_global{
270 DDV_ColorGlobal * colorp;
271 } DDV_Global, PNTR DDV_GlobalPtr;
272
273 typedef struct ddvmenu {
274 /*file menu*/
275 MenU File;
276 IteM FileOpen;/*open file command*/
277 IteM EntrezOpen;/*open from ID1 command*/
278 IteM FileClose;/*close file command*/
279 IteM SaveEdits;/* save changes made in editor*/
280 IteM FileExport;/*export a seqalign*/
281 IteM ImportSeq;/* import a sequence */
282 IteM ImportNucSeqAlign;/* import a nuc SeqAlign */
283 IteM ImportProtSeqAlign;/* import a prot SeqAlign */
284 IteM Hide;/* show/hide dialog */
285 IteM QuitViewer;/*close the viewer*/
286 /*Edit menu*/
287 MenU Edit;
288 IteM DeleteRow;
289 IteM MoveRowLeft;
290 IteM MoveRowRight;
291 IteM LeftBoundaryLeft;
292 IteM LeftBoundaryRight;
293 IteM RightBoundaryLeft;
294 IteM RightBoundaryRight;
295 IteM DeleteBlock;
296 IteM CreateBlock;
297 IteM Prev;
298 IteM Next;
299 IteM Orig;
300 /*Align menu */
301 MenU Align;
302 MenU AddRow;
303 MenU FromFile;
304 MenU FromNet;
305 IteM Deselect;
306 IteM BlastFile;
307 IteM BlastNet;
308 /*Options menu*/
309 MenU Options;
310 IteM DispStyles;/*display styles*/
311 ChoicE MouseMode;/*mouse mode (query, selection, edit)*/
312 ChoicE Justify;/*justify (left, right, center)*/
313 IteM ShowLowerPanel;
314 IteM ConfigNet;/*Entrez Network Conf. dlg*/
315 IteM LaunchEditor;
316 IteM MergeBlocks;
317 IteM SplitBlock;
318 IteM DeleteDDVBlock;
319 } DdvMenu, PNTR DdvMenuPtr;
320
321 typedef struct ddvmsadata {
322 MsaParaGPopList pgp_l;/*ParaG list*/
323 Uint2 entityID;/*currently displayed SeqAlign*/
324 Uint2 itemID;/* */
325 } DdvMSAData, PNTR DdvMSADataPtr;
326
327 typedef struct ddvmainwin {
328 Boolean UseNetwork;
329 /*main win menu*/
330 DdvMenu MainMenu;/*menu command list*/
331 ButtoN gotoBtn;
332 TexT gotoValRow;
333 TexT gotoValCol;
334 GrouP StatusGroup;
335 GrouP StatusGroupLower;
336 Boolean Show_logo;
337 FonT f1; /*tree fonts used to display the software logo*/
338 FonT f2;
339 FonT f3;
340 /*viewer data used only when AutonomeViewer is TRUE */
341 Boolean AutonomeViewer;/*viewer is standalone ?*/
342 WindoW hWndMain;/*handle to the main window*/
343 PaneL hWndDDV;/*handle of the current DDV panel*/
344 PaneL hUpperPanel;/*handle of the upper DDV panel (the multiple)*/
345 PaneL hLowerPanel;/*handle of the DDV panel (the pairwise) */
346 PrompT InfoPanel;
347 PrompT UpperInfoPanel;
348 PrompT LowerInfoPanel;
349 /*use to open a file*/
350 UdvFetchSeqEntryProc fetchSepProc;/*function to get a gi over the Network*/
351 Nlm_ItmActnProc NetCfgMenuProc;
352 StartNetworkProc NetStartProc;
353 Boolean EditAllowed; /* editing is allowed */
354 }DdvMainWin,PNTR DdvMainWinPtr;
355
356 typedef struct ddvtimerdata {
357 Int4 col;/*one-based; disp coord*/
358 Int4 row;/*one-based; disp coord*/
359 Int2 delay;
360 Uint1 status;
361 Uint1 action;
362 }DdvTimerData, PNTR DdvTimerDataPtr;
363
364 typedef struct ddvmain {
365 WindoW hParent;
366 PaneL hWndDDV;/*panel's handle*/
367 UnDViewerGraphData GrData;/*graphical data*/
368 DdvMSAData MSA_d;/*data to display*/
369 DDV_Global Globals;/*shared color data, among others*/
370 UDV_mouse_select ms;/*mouse selection info*/
371 DDV_Disp_Opt ddo;
372 DDVCaretInfo dci;/*caret position and style (editor only)*/
373 DDVEditRowInfo deri;/*some rows info to apply edit commands*/
374 DdvTimerData dtd;/*last goto position*/
375 Uint1 MouseMode;
376 Uint1 SavedMouseMode;
377 Uint2 userkey;
378 Uint2 procid;
379 Uint2 proctype;
380 Int4 MasterViewer;/*the viewer launching ddv*/
381 Boolean bEditor;/*true if use DDV with editor functions*/
382 DDE_StackPtr dsp;/*data for editor*/
383 Int4 BlockIndex;/*the first block of merge 2 blocks*/
384 Int4 SaveCol;/*col where split line is drawn*/
385 /*SAP list when open a File or fetch an DB entry*/
386 ValNodePtr vnp_ali;/*SeqAlign List*/
387 DdvOpenData dod;/*what is open in DDV*/
388 } DdvMain, PNTR DdvMainPtr;
389
390 #define NUMARGS 2
391 extern Args DDV_myargs[NUMARGS];
392
393 #ifdef __cplusplus
394 }
395 #endif
396
397 #endif /* ndef _DDVMAIN_ */
398
399 |
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more information. |