| 1 | // ============================================================ // |
|---|
| 2 | // // |
|---|
| 3 | // File : TreeWrite.h // |
|---|
| 4 | // Purpose : // |
|---|
| 5 | // // |
|---|
| 6 | // Institute of Microbiology (Technical University Munich) // |
|---|
| 7 | // www.arb-home.de // |
|---|
| 8 | // // |
|---|
| 9 | // ============================================================ // |
|---|
| 10 | |
|---|
| 11 | #ifndef TREEWRITE_H |
|---|
| 12 | #define TREEWRITE_H |
|---|
| 13 | |
|---|
| 14 | #ifndef ARBDB_BASE_H |
|---|
| 15 | #include <arbdb_base.h> |
|---|
| 16 | #endif |
|---|
| 17 | #ifndef NDS_H |
|---|
| 18 | #include <nds.h> |
|---|
| 19 | #endif |
|---|
| 20 | |
|---|
| 21 | typedef void (*TREE_make_node_text_init)(GBDATA *gb_main); |
|---|
| 22 | typedef const char *(*TREE_make_node_text) (GBDATA *gb_main, GBDATA * gbd, enum NDS_Type mode, TreeNode *species, const char *tree_name); |
|---|
| 23 | |
|---|
| 24 | struct TREE_node_text_gen { |
|---|
| 25 | TREE_make_node_text_init init; // e.g. make_node_text_init() from AWT |
|---|
| 26 | TREE_make_node_text gen; // e.g. make_node_text_nds() from AWT |
|---|
| 27 | |
|---|
| 28 | TREE_node_text_gen(TREE_make_node_text_init init_, TREE_make_node_text gen_) : |
|---|
| 29 | init(init_), |
|---|
| 30 | gen(gen_) |
|---|
| 31 | {} |
|---|
| 32 | }; |
|---|
| 33 | |
|---|
| 34 | enum TREE_node_quoting { |
|---|
| 35 | TREE_DISALLOW_QUOTES = 0, // don't use quotes |
|---|
| 36 | TREE_SINGLE_QUOTES = 1, // use single quotes |
|---|
| 37 | TREE_DOUBLE_QUOTES = 2, // use double quotes |
|---|
| 38 | |
|---|
| 39 | TREE_FORCE_QUOTES = 4, // force usage of quotes |
|---|
| 40 | TREE_FORCE_REPLACE = 8, // replace all problematic characters (default is to replace quotes in quoted labels) |
|---|
| 41 | }; |
|---|
| 42 | |
|---|
| 43 | GB_ERROR TREE_write_Newick(GBDATA *gb_main, const char *tree_name, const TREE_node_text_gen *node_gen, bool save_branchlengths, bool save_bootstraps, bool save_groupnames, bool pretty, TREE_node_quoting quoteMode, const char *path); |
|---|
| 44 | GB_ERROR TREE_write_XML(GBDATA *gb_main, const char *db_name, const char *tree_name, const TREE_node_text_gen *node_gen, bool skip_folded, const char *path); |
|---|
| 45 | GB_ERROR TREE_export_tree(GBDATA *gb_main, FILE *out, TreeNode *tree, bool triple_root, bool export_branchlens, bool use_double_quotes); |
|---|
| 46 | |
|---|
| 47 | #else |
|---|
| 48 | #error TreeWrite.h included twice |
|---|
| 49 | #endif // TREEWRITE_H |
|---|