1 /* fstyle.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: fstyle.h 27 * 28 * Author: Sergei Egorov, Alex Smirnov 29 * 30 * Version Creation Date: 9/23/94 31 * 32 * $Revision: 6.1 $ 33 * 34 * File Description: 35 * 36 * Modifications: 37 * -------------------------------------------------------------------------- 38 * Date Name Description of modification 39 * ------- ---------- ----------------------------------------------------- 40 * 41 * ========================================================================== 42 */ 43 44 #ifndef _FSTYLE_ 45 #define _FSTYLE_ 46 47 /**************************************************************************/ 48 /* INCLUDE */ 49 /**************************************************************************/ 50 #include <objfdef.h> 51 #include <sequtil.h> 52 #include <ncbidraw.h> 53 54 /**************************************************************************/ 55 /* DEFINES */ 56 /**************************************************************************/ 57 /* Parameter types: */ 58 #define MSM_TRUEFALSE 0 /*Nlm_Boolean*/ 59 #define MSM_COLOR 1 /*Nlm_Int4 R<<16 | G<<8 | B*/ 60 #define MSM_LTYPE 2 /*Nlm_Int1*/ 61 #define MSM_SHADING 3 /*Nlm_Int1*/ 62 #define MSM_PENWIDTH 4 /*Nlm_Int1*/ 63 #define MSM_NUM 5 /*Nlm_Int2*/ 64 #define MSM_STYLE 6 /*Nlm_Int4*/ 65 #define MSM_FONT 7 /*Nlm_FonT*/ 66 #define MSM_HEIGHT 8 /*Nlm_Int4*/ 67 #define MSM_STRING 9 /*Nlm_CharPtr*/ 68 #define MSM_SCALE 10 /*Nlm_Int4*/ 69 70 /* Parameter class may be any feature type ( see objfdef.h ) or 71 one of the following macros: */ 72 #define MSM_TOPSTYLE 0 /* top style */ 73 #define MSM_GROUPS -1 /* groups of features */ 74 #define MSM_ALIGNMENT -2 /* alignment */ 75 #define MSM_CCOLOR -3 /* cycle colors */ 76 #define MSM_SEQUENCE -4 /* sequence */ 77 #define MSM_EXTRA_GENBANK -5 /* extra genbank record in the display */ 78 #define MSM_EXTRA_MEDLINE -6 /* extra medline record in the display */ 79 #define MSM_EXTRA_BOTH -7 /* extra medline record in the display */ 80 81 /* Table of parameters 82 ------------------------------------------------------------------------------- 83 Class: | Subclass: | TRUEFALSE | SHADING | STYLE | STRING | 84 | | | COLOR | | PENWIDTH| | FONT | |SCA| 85 | | | | LTYPE | | NUM| | | HEIGHT |LE | 86 ------------------------------------------------------------------------------- 87 Any feature| SEGMENT | | * | | * | | | *1 | | * | | | 88 (objfdef.h)| SEG_BORD | * | * | * | | * | | | | | | | 89 | FGAP | | * | * | | * | | *2 | | | | | 90 | FLABEL | | * | | | | | *3 | * | * | | | 91 | FGROUP | | | | | | *4 | | | | | | 92 | FORDER | | | | | | *5 | | | | | | 93 | | | | | | | | | | | | | 94 Any extra | SEGMENT | | * | | * | | | *1 | | * | | | 95 | SEG_BORD | * | * | * | | * | | | | | | | 96 | FGAP | | * | * | | * | | *2 | | | | | 97 | FLABEL | | * | | | | | *3 | * | * | | | 98 | | | | | | | | | | | | | 99 SEQUENCE | SEGMENT | | * | | * | | | *6 | | * | | | 100 | SEG_BORD | * | * | * | | * | | | | | | | 101 | SLABEL | | * | | | | | *7 | * | * | | | 102 | | | | | | | | | | | | | 103 TOPSTYLE | NOSUBCLASS | | | | | | | *8 | | | | | 104 | SPACE | | | | | | | | | *9 | | | 105 | ENDS | | | | | | | | | | | * | 106 | LABEL | | | | | | *10| *15| | | | | 107 | | | | | | | | | | | | | 108 GROUPS | NOSUBCLASS | * | * | | | | *11| | * | * | | | 109 |<group_num> | * | | | | | *12| *16| | | *13| | 110 | | | | | | | | | | | | | 111 ALIGMENT | NOSUBCLASS | | | | | | | *14| | | | * | 112 | ALINE | | * | * | | * | | | | | | | 113 | | | | | | | | | | | | | 114 CCOLOR | NOSUBCLASS | | | | | | * | | | | | | 115 |<color_num> | | * | | | | | | | | | | 116 ------------------------------------------------------------------------------- 117 */ 118 119 /* Parametr subclasses: */ 120 #define MSM_NOSUBCLASS 0 /* unnamed subclass */ 121 #define MSM_SEGMENT 1 /* feature of sequence segment */ 122 #define MSM_SEG_BORD 2 /* segment border */ 123 #define MSM_FGAP 3 /* feature gap */ 124 #define MSM_FLABEL 4 /* feature label */ 125 #define MSM_FGROUP 5 /* feature group */ 126 #define MSM_FORDER 6 /* feature order */ 127 #define MSM_SLABEL 4 /* sequence label */ 128 #define MSM_SPACE 1 /* space between ... */ 129 #define MSM_ENDS 2 /* sequence/feature ends */ 130 #define MSM_LABEL 4 /* style of label */ 131 #define MSM_ALINE 1 /* the line style of for alignment displayed in 132 the MSM_FIX style */ 133 134 /* (*1) - feature segment style */ 135 #define MSM_SEG_FORM 0xF /* form of seqment: */ 136 #define MSM_SEG_BOX 0 /* box */ 137 #define MSM_SEG_LINE 1 /* line */ 138 #define MSM_SEG_SYM_RECT 2 /* symbol rectangle */ 139 #define MSM_SEG_SYM_DIAMOND 3 /* symbol diamond */ 140 #define MSM_SEG_SYM_OVAL 4 /* symbol oval */ 141 #define MSM_SEG_SYM_TRIANGLE 5 /* symbol triangle */ 142 #define MSM_SEG_END 0xF0 /* end of segment: */ 143 #define MSM_SEG_SHOWORIENT 0x10 /* show orientation */ 144 #define MSM_SEG_SHOWTRUNC 0x20 /* show trancation */ 145 146 /* (*2) - gap style */ 147 #define MSM_GAP_NONE 0 /* gap invisible */ 148 #define MSM_GAP_LINE 1 /* show gap as line */ 149 #define MSM_GAP_ANGLE 2 /* show gap as angle */ 150 151 /* (*3) - label style */ 152 #define MSM_LABEL_NONE 255 /* no lables */ 153 #define MSM_LABEL_TYPE 0 /* show type */ 154 #define MSM_LABEL_CONTENT 1 /* show content */ 155 #define MSM_LABEL_BOTH 2 /* show type:content */ 156 #define MSM_LABEL_SUMMARY 3 /* show summary */ 157 158 /* (*4) - feature order - feature order in the group */ 159 160 /* (*5) - feature group - feature group number */ 161 162 /* (*6) - sequence segment style likes feature segment style but 163 the segment form can not be a symbol ( box or line only ) */ 164 165 /*(*7) - label type for sequences ( see file sequtil.h 166 for PRINTID_ options) */ 167 168 /* (*8) - "top" style */ 169 #define MSM_STACKGENE 0x1 170 #define MSM_HISTORY 0x2 171 #define MSM_SEGMENTS 0x4 172 173 /* (*9) - space between features */ 174 175 /* (*10) - maximumstring lenght */ 176 177 /* (*11) - total number of groups */ 178 179 /* (*12) - order number */ 180 181 /* (*13) - group name */ 182 183 /*(*14) - the style for the alignment*/ 184 #define MSM_SEQHIST 1 /*show alignment as a history of a sequence*/ 185 #define MSM_MPAIR 2 /*multiple pairwise*/ 186 #define MSM_MDIM 3 /*true multiple alignment*/ 187 #define MSM_FIXED 4 /*the fixed stype*/ 188 189 /* (*15) lable layout */ 190 #define MSM_LABEL_TOP 0 191 #define MSM_LABEL_BOTTOM 1 192 #define MSM_LABEL_LEFT 2 193 #define MSM_LABEL_RIGHT 3 194 195 /* (*16) group layout */ 196 #define MSM_SPREAD 0 197 #define MSM_COMPRESS 1 198 199 /**************************************************************************/ 200 /* FUNCTION PROTOTYPES */ 201 /**************************************************************************/ 202 #ifdef __cplusplus 203 extern "C" { 204 #endif 205 206 extern void LIBCALL Nlm_InitMuskStyles (void); 207 extern void LIBCALL Nlm_ExitMuskStyles (void); 208 extern void LIBCALL Nlm_MuskStyleManager (void); 209 extern BigScalar Nlm_GetMuskCParam (Nlm_Int2 p_class, Nlm_Int2 p_subclass, 210 Nlm_Int2 p_type); 211 extern Nlm_Int2 Nlm_GetMuskTotalSt (void); 212 extern Nlm_CharPtr Nlm_GetMuskStyleName (Nlm_Int2 styleNum); 213 extern Nlm_Int2 Nlm_GetMuskCurrentSt (void); 214 extern void Nlm_SetMuskCurrentSt (Nlm_CharPtr name); 215 216 extern Nlm_Int2 Nlm_CopyMuskStyle (Nlm_CharPtr name, Nlm_Int2 styleNum); 217 extern Boolean Nlm_DeleteMuskStyle (Nlm_Int2 styleNum); 218 extern Boolean Nlm_EditMuskStyle (Nlm_Int2 styleNum); 219 extern void Nlm_SetMuskCParamEd (Nlm_Int2 p_class, Nlm_Int2 p_subclass, 220 Nlm_Int2 p_type, BigScalar val ); 221 extern BigScalar Nlm_GetMuskCParamEd (Nlm_Int2 p_class, Nlm_Int2 p_subclass, 222 Nlm_Int2 p_type); 223 extern void Nlm_FreeMuskStyleEd (Nlm_Boolean save); 224 extern Nlm_FonT Nlm_LoadMuskFont ( Nlm_FontSpecPtr fsp, Int2 fnum, Int2Ptr fsize); 225 226 #ifdef __cplusplus 227 } 228 #endif 229 230 /**************************************************************************/ 231 /* FUNCTION NAME DEFINITION */ 232 /**************************************************************************/ 233 #define InitMuskStyles Nlm_InitMuskStyles 234 #define ExitMuskStyles Nlm_ExitMuskStyles 235 #define MuskStyleManager Nlm_MuskStyleManager 236 #define GetMuskCParam Nlm_GetMuskCParam 237 #define GetMuskTotalSt Nlm_GetMuskTotalSt 238 #define GetMuskStyleName Nlm_GetMuskStyleName 239 #define GetMuskCurrentSt Nlm_GetMuskCurrentSt 240 #define SetMuskCurrentSt Nlm_SetMuskCurrentSt 241 242 #endif /* _FSTYLE_ */ 243 244 /*END*/ 245