1 /*   macrodlg.h
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:  macrodlg.h
27 *
28 * Author:  Colleen Bollin
29 *
30 * Version Creation Date:   11/23/2007
31 *
32 * $Revision: 1.44 $
33 *
34 * File Description:
35 *
36 * Modifications:
37 * --------------------------------------------------------------------------
38 * Date     Name        Description of modification
39 * -------  ----------  -----------------------------------------------------
40 *
41 *
42 * ==========================================================================
43 */
44 
45 #ifndef MACRODLG_H
46 #define MACRODLG_H
47 
48 #ifdef __cplusplus
49 extern "C" {
50 #endif
51 
52 #include <objmacro.h>
53 #include <macroapi.h>
54 
55 typedef void (*MacroCloseCallback) (Pointer userdata, Pointer callback_data);
56 NLM_EXTERN void LaunchMacroEditorMenuItem (IteM i);
57 NLM_EXTERN void LaunchMacroEditor (Uint2 entityID, CharPtr filename, MacroCloseCallback callback, Pointer callback_data);
58 NLM_EXTERN void SelectiveMacroRun (ValNodePtr macro_list);
59 
60 
61 /* moved from macrodlg.c for being used in EraseAllFieldsWhenBlank() in sequin10.c: J. Chen */
62 typedef struct tabcolumnconfiglistdialog {
63   DIALOG_MESSAGE_BLOCK
64   DoC                  column_list_doc;
65   DialoG               edit_col_dlg;
66   Nlm_ChangeNotifyProc change_notify;
67   Pointer              change_userdata;
68   TabColumnConfigPtr PNTR column_list;
69   CharPtr PNTR            first_values;
70   Int4Ptr                 blank_list;
71   Int4                    num_columns;
72   Int4                    current_column;
73 } TabColumnConfigListDlgData, PNTR TabColumnConfigListDlgPtr;
74 
75 
76 NLM_EXTERN DialoG TabColumnConfigDialog
77 (GrouP                    h,
78  CharPtr                  title,
79  Int4                     num_blank,
80  Nlm_ChangeNotifyProc     change_notify,
81  Pointer                  change_userdata);
82 NLM_EXTERN DialoG TabColumnConfigListDialog (GrouP h, ValNodePtr first_values, ValNodePtr blank_list, Nlm_ChangeNotifyProc change_notify, Pointer change_userdata);
83 NLM_EXTERN void ChangeDataForTabColumnConfigListDialog (DialoG d, ValNodePtr first_values, ValNodePtr blank_list);
84 NLM_EXTERN void PopulateTabConfigListColumnListDoc (DialoG d);
85 NLM_EXTERN DialoG MatchTypeDialog (GrouP g, Nlm_ChangeNotifyProc change_notify, Pointer change_userdata);
86 /* for ID match location */
87 NLM_EXTERN DialoG IdMatchLocationDlg (GrouP h, Nlm_ChangeNotifyProc change_notify, Pointer change_userdata);
88 NLM_EXTERN Uint1 GetMatchLocationFromIdMatchLocationDlg (DialoG d);
89 NLM_EXTERN void SetMatchLocationInIdMatchLocationDlg (DialoG d, Uint1 match_location);
90 
91 
92 NLM_EXTERN DialoG FeatureTypeDialog (GrouP h, Nlm_ChangeNotifyProc change_notify, Pointer change_userdata);
93 NLM_EXTERN Uint2 GetFeatureTypeFromFeatureTypeDialog (DialoG d);
94 NLM_EXTERN void SetFeatureTypeInFeatureTypeDialog (DialoG d, Uint2 feature);
95 NLM_EXTERN DialoG FeatureTypeDialogMulti (GrouP h, Nlm_ChangeNotifyProc change_notify, Pointer change_userdata);
96 NLM_EXTERN DialoG StringConstraintDialog (GrouP h, CharPtr label, Boolean clear_btn, Nlm_ChangeNotifyProc change_notify, Pointer change_userdata);
97 NLM_EXTERN DialoG ComplexConstraintDialog (GrouP h, Nlm_ChangeNotifyProc change_notify, Pointer change_userdata);
98 NLM_EXTERN void ChangeComplexConstraintFieldType (DialoG d, Uint2 qual_type, ValNodePtr rna_type, Int2 feat_type);
99 typedef enum {
100   eComplexConstraintType_source = 1,
101   eComplexConstraintType_cdsgeneprot,
102   eComplexConstraintType_pub,
103   eComplexConstraintType_feature_field,
104   eComplexConstraintType_rna_field,
105   eComplexConstraintType_molinfo_field,
106   eComplexConstraintType_seqid,
107   eComplexConstraintType_string,
108   eComplexConstraintType_loc
109 } EComplexConstraintType;
110 NLM_EXTERN void SetComplexConstraintType (DialoG d, EComplexConstraintType constraint_type);
111 
112 
113 
114 NLM_EXTERN DialoG ConstraintSetDialog (GrouP h, Nlm_ChangeNotifyProc change_notify, Pointer change_userdata);
115 NLM_EXTERN void SetConstraintSetDefaultConstraintType (DialoG d, Uint1 constraint_type);
116 NLM_EXTERN DialoG SequenceConstraintDialog (GrouP h, Nlm_ChangeNotifyProc change_notify, Pointer change_userdata);
117 NLM_EXTERN DialoG MolInfoBlockDialog (GrouP h, Boolean edit, Nlm_ChangeNotifyProc change_notify, Pointer change_userdata);
118 NLM_EXTERN void SingleAECRMacroAction (Uint2 entityID, Boolean indexer_version, Uint1 AECR_action_type, Uint1 AECR_qual_type);
119 NLM_EXTERN void MacroApplyKeyword (Uint2 entityID, Boolean indexer_version);
120 
121 NLM_EXTERN DialoG LocationConstraintDialog (GrouP h, Nlm_ChangeNotifyProc change_notify, Pointer change_userdata);
122 
123 NLM_EXTERN Uint2 TwoStepExistingText (Int4 num_found, Boolean non_text, Boolean allow_multi);
124 
125 NLM_EXTERN ForM SingleParseAction (Uint2 entityID);
126 
127 NLM_EXTERN DialoG MolinfoFieldChoiceDialog (GrouP h, Nlm_ChangeNotifyProc change_notify, Pointer change_userdata);
128 
129 /* for adding features */
130 typedef struct applyfeaturedetails {
131   Boolean add_mrna;
132   ValNodePtr fields;
133   ValNodePtr src_fields;
134 } ApplyFeatureDetailsData, PNTR ApplyFeatureDetailsPtr;
135 
136 NLM_EXTERN DialoG ApplyFeatureDetailsDialog (GrouP h, Uint1 featdef_type, ApplyFeatureDetailsPtr details, Boolean indexer_version, Nlm_ChangeNotifyProc change_notify, Pointer change_userdata);
137 NLM_EXTERN ApplyFeatureDetailsPtr ApplyFeatureDetailsNew (ApplyFeatureActionPtr action);
138 NLM_EXTERN ApplyFeatureDetailsPtr ApplyFeatureDetailsFree (ApplyFeatureDetailsPtr details);
139 NLM_EXTERN DialoG ParseDstDialog (GrouP h, Nlm_ChangeNotifyProc change_notify, Pointer change_userdata);
140 NLM_EXTERN DialoG CapChangeDialogEx(GrouP h, Nlm_ChangeNotifyProc, Pointer change_userdata, Boolean allow_none);
141 NLM_EXTERN DialoG CapChangeDialog (GrouP h, Nlm_ChangeNotifyProc change_notify, Pointer change_userdata);
142 NLM_EXTERN void SetCapChangeDialogValue (DialoG d, Int4 cap_change);
143 NLM_EXTERN Int2 GetCapChangeDialogValue (DialoG d);
144 NLM_EXTERN DialoG TextPortionDialog (GrouP h, Boolean inside, Nlm_ChangeNotifyProc change_notify, Pointer change_userdata);
145 
146 NLM_EXTERN ForM SingleMacroAction (Uint2 entityID, Boolean indexer_version);
147 NLM_EXTERN void GenericMacroActionForm (Uint2 entityID, ValNodePtr action, Boolean indexer_version);
148 
149 NLM_EXTERN DialoG StructuredCommentDatabaseNameDialog (GrouP h, Nlm_ChangeNotifyProc change_notify, Pointer change_userdata);
150 NLM_EXTERN DialoG RemoveDuplicateFeatActionDialog (GrouP h, Boolean edit, Nlm_ChangeNotifyProc change_notify, Pointer change_userdata);
151 
152 NLM_EXTERN void EditMacroTemplate (void);
153 NLM_EXTERN void LaunchMacroTemplateEditor (IteM i);
154 
155 NLM_EXTERN void LaunchSuspectProductRuleEditor (IteM i);
156 
157 #ifdef __cplusplus
158 }
159 #endif
160 
161 #endif
162