1 /*  $Id: ddvpanel.h,v 1.30 2000/07/12 22:22:42 hurwitz 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:  ddvpanel.h
27 *
28 * Author:  Patrick Durand
29 *
30 * Version Creation Date:   06/19/99
31 *
32 * $Revision: 1.30 $
33 *
34 * File Description:
35 *
36 * Modifications:
37 * --------------------------------------------------------------------------
38 * $Log: ddvpanel.h,v $
39 * Revision 1.30  2000/07/12 22:22:42  hurwitz
40 * added delete block to DDV
41 *
42 * Revision 1.29  2000/07/08 20:43:58  vakatov
43 * Get all "#include" out of the 'extern "C" { }' scope;  other cleanup...
44 *
45 * Revision 1.28  2000/07/05 19:23:14  lewisg
46 * add two panes to ddv, update msvc project files
47 *
48 * Revision 1.27  2000/06/30 22:31:51  hurwitz
49 * added merge block function for DDV
50 *
51 * Revision 1.26  2000/06/02 19:57:04  hurwitz
52 * added a query dialog when converting from pairwise multiple to true multiple, bug fix of double freeing of a seqAlignPtr
53 *
54 * Revision 1.25  2000/05/15 22:00:36  hurwitz
55 * put save-edits query into DDV_SlaveQuit where it belongs
56 *
57 * Revision 1.24  2000/04/29 21:49:24  kans
58 * removed bad characters on Mac
59 *
60 * Revision 1.23  2000/04/27 20:05:55  kans
61 * added stub functions for Sequin
62 *
63 * Revision 1.22  2000/04/27 19:57:59  hurwitz
64 * scroll to aligned block on launch of DDE
65 *
66 * Revision 1.21  2000/04/21 23:00:50  hurwitz
67 * can launch DDE from DDV
68 *
69 * Revision 1.20  2000/04/10 21:41:26  lewisg
70 * move alignment menus into ddv, udv from cn3d
71 *
72 * Revision 1.19  2000/04/10 20:58:42  hurwitz
73 * added GUI controls for DeleteBlock in DDE
74 *
75 * Revision 1.18  2000/04/07 16:21:08  hurwitz
76 * made delete block faster, added delete block to edit menu
77 *
78 * Revision 1.17  2000/03/21 14:21:47  durand
79 * fixed a problem with menus setup
80 *
81 * Revision 1.16  2000/03/14 22:08:21  hurwitz
82 * undo and redo working properly, restore-original function added
83 *
84 * Revision 1.15  2000/03/10 23:01:43  hurwitz
85 * added undo and redo functions, first pass
86 *
87 * Revision 1.14  2000/03/06 22:45:58  hurwitz
88 * can shift right boundary of an aligned block left and right, DDVRuler updates added
89 *
90 * Revision 1.13  2000/02/08 14:10:43  durand
91 * made extern the functions DDV_UpdateHScrollVal and
92 *
93 * Revision 1.12  2000/02/04 16:05:41  durand
94 * add click action to select a row
95 *
96 * Revision 1.11  2000/01/26 13:38:55  durand
97 * update the GUI for the editor. Add functions to create the data to be used by the editor
98 *
99 * Revision 1.10  2000/01/10 15:09:45  durand
100 * Use Entrez instead of ID1
101 *
102 * Revision 1.9  1999/12/07 21:40:14  durand
103 * add mouse modes menu and caret facility for the editor
104 *
105 * Revision 1.8  1999/12/06 16:19:20  durand
106 * add GoTo facility to DDV
107 *
108 * Revision 1.7  1999/12/03 23:17:23  lewisg
109 * Patrick's new global update msg, argument passing when launching ddv, experimental editing
110 *
111 * Revision 1.6  1999/11/30 17:29:00  durand
112 * fix a problem of redeclaration of the function DDV_CloseData
113 *
114 * Revision 1.5  1999/11/29 15:26:26  durand
115 * designed a new GUI to fix problems under MacOS, Linux and SGI
116 *
117 * Revision 1.4  1999/10/22 20:12:47  durand
118 * add Export command (text, HTML and Phylip formats)
119 *
120 * Revision 1.3  1999/10/20 13:17:19  durand
121 * add display for disc. SeqAlign tails
122 *
123 * Revision 1.2  1999/10/15 21:57:37  durand
124 * add a UI for display options
125 *
126 * Revision 1.1  1999/09/30 14:10:29  durand
127 * add ddv to toolkit
128 *
129 * Revision 1.5  1999/09/09 21:55:07  durand
130 * instantiate the Fle|Close command of DDV
131 *
132 * Revision 1.4  1999/07/01 14:08:08  durand
133 * the loader functions of DDV or now in ddvopen.c
134 *
135 * Revision 1.2  1999/06/28 22:07:22  durand
136 * add loader functions and clean the code with Lint and Purify
137 *
138 * Revision 1.1  1999/06/19 17:21:08  durand
139 * add Vibrant DDV code
140 *
141 *
142 *
143 * ==========================================================================
144 */
145 
146 #ifndef _DDVPANEL_
147 #define _DDVPANEL_
148 
149 #include <udviewer.h>
150 #include <ddvmain.h>
151 
152 #undef NLM_EXTERN
153 #ifdef NLM_IMPORT
154 #define NLM_EXTERN NLM_IMPORT
155 #else
156 #define NLM_EXTERN extern
157 #endif
158 
159 #ifdef __cplusplus
160 extern "C" {
161 #endif
162 
163 /******************************************************************************
164 
165 	Data structures
166 
167 ******************************************************************************/
168 typedef struct ddvdispstylesmsg {/*used by the Display Styles Dlg box*/
169 	WindoW hWinMain; /*DDV main window handle*/
170 	ButtoN  chk2;/*use color display chk box*/
171 	ButtoN  chk3;/*show left tail chk box*/
172 	ButtoN  chk4;/*show right tail chk box*/
173 	GrouP  g1;   /*main group for Highlight unaligned regions"*/
174 	GrouP  g2;   /*"Spacer" group for Highlight unaligned regions"*/
175 	GrouP  g5;   /*"seq. justification" group for Highlight unaligned regions"*/
176 	GrouP  g12;  /*BSP ruler style group*/
177 	TexT   edit1; /*size TexT */
178 	LisT   BspNames;/*list of BSP names*/
179 	} DdvDispStylesMSG, PNTR DdvDispStylesMSGPtr;
180 
181 typedef struct ddvexporttextemsg {/*used by the Display Styles Dlg box*/
182 	WindoW hWinMain; /*DDV main window handle*/
183 	ButtoN  chk2;/*show number*/
184 	ButtoN  chk3;/*show ticks*/
185 	ButtoN  chk4;/*Use block of 10 letters*/
186 	ButtoN  chk5;/*Display strand orientation*/
187 	ButtoN  chk6;/*Display BioSeq coordinates*/
188 	ButtoN  ok;
189 	PopuP   pop; /*list of available formats*/
190 	TexT    edit1; /*filename */
191 	} DdvExportTexteMSG, PNTR DdvExportTexteMSGPtr;
192 
193 
194 /******************************************************************************
195 
196 	Defines
197 
198 ******************************************************************************/
199 
200 #define DDV_DEFAULT_PARAG_SIZE 70
201 
202 #define MOVE_ROW_LEFT              0
203 #define MOVE_ROW_RIGHT             1
204 #define MOVE_LEFT_BOUNDARY_LEFT    2
205 #define MOVE_LEFT_BOUNDARY_RIGHT   3
206 #define MOVE_RIGHT_BOUNDARY_LEFT   4
207 #define MOVE_RIGHT_BOUNDARY_RIGHT  5
208 #define DDE_PREV                   6
209 #define DDE_NEXT                   7
210 #define DDE_ORIG                   8
211 #define DDE_DELETE_BLOCK           9  /* for DDE */
212 #define DDE_CREATE_BLOCK          10
213 #define DDE_LAUNCH_EDITOR         11
214 #define DDE_MERGE_BLOCKS          12
215 #define DDE_SPLIT_BLOCK           13
216 #define DDV_DELETE_BLOCK          14  /* for DDV */
217 
218 
219 /******************************************************************************
220 
221 	Global varaibles
222 
223 ******************************************************************************/
224 extern Char szAppName[];
225 extern Char szAppName2[];
226 
227 
228 /******************************************************************************
229 
230 	Exported functions
231 
232 ******************************************************************************/
233 extern void DDV_EnableGotoTBItems(WindoW hParent,Boolean bEnable);
234 extern void DDV_WhatSize(DdvMainPtr dmp);
235 extern void DDV_InitPanelData(UDVPanelDataPtr pdp);
236 extern void DDV_SetupWin (WindoW w,Boolean bInit);
237 extern void DDV_Resize_DDV (PaneL p, Boolean bInit);
238 extern void DDV_WinMainResize (WindoW w);
239 extern void DDV_UpdateVScrollVal(PaneL p,Boolean bInit,Int4 CurPos);
240 extern void DDV_UpdateHScrollVal(PaneL p,Boolean bInit,Int4 CurPos);
241 extern void DDV_VHScrl(PaneL p,UnDViewerGraphDataPtr gdp, Int4 newval, Int4 oldval,
242 	Boolean IsVscroll);
243 extern void DDV_VScrlProc (BaR sb, SlatE s, Int4 newval, Int4 oldval);
244 extern void DDV_HScrlProc (BaR sb, SlatE s, Int4 newval, Int4 oldval);
245 extern Boolean DDV_CreateViewerPanel(WindoW w,DdvMainWinPtr dmwp,
246 	SAM_ViewGlobal *vgp,Boolean bEditor);
247 NLM_EXTERN void DDV_SetMenuFocus(WindoW w);
248 extern void DDV_SetupMenus(WindoW w,Boolean isID1Ok,Boolean bEditor,
249                            SAM_ViewGlobal *vgp);
250 extern void DDV_WinMainResize (WindoW w);
251 extern void DDV_WinMainCleanup (GraphiC g, VoidPtr data);
252 extern void DDV_WinMainProgQuit(WindoW w);
253 extern void DDV_InitGraphGlobal(DdvMainPtr dmp);
254 extern void DDV_CloseData(DdvMainWinPtr mWin_d,Boolean bFinalExit);
255 extern void DDV_SetRulerAttribInPGP(ValNodePtr ParaG_Head, Uint1 RulerStyle);
256 extern void DDV_SortPGPLineNum(ValNodePtr PNTR Head, Int4 nBsp);
257 extern void DDV_CleanupDDVPdata_g (DdvMainPtr dmp);
258 extern void DDV_TimerProc (WindoW w);
259 NLM_EXTERN void DDVResetProc (PaneL p);
260 
261 NLM_EXTERN void DDV_Save(ButtoN g);
262 NLM_EXTERN void DDV_NoSave(ButtoN g);
263 NLM_EXTERN void DDV_Cancel(ButtoN g);
264 NLM_EXTERN void DDV_FileCloseIt(WindoW hWinMain);
265 NLM_EXTERN void DDV_SaveEdits(DdvMainPtr dmp, Boolean UpdateDDV);
266 
267 #ifdef __cplusplus
268 }
269 #endif
270 
271 #undef NLM_EXTERN
272 #ifdef NLM_EXPORT
273 #define NLM_EXTERN NLM_EXPORT
274 #else
275 #define NLM_EXTERN
276 #endif
277 
278 #endif /* ndef _DDVPANEL_ */
279