source: tags/old_import_filter/NTREE/NT_cb.cxx

Last change on this file was 10117, checked in by westram, 11 years ago
  • fix include-chaos in NTREE
    • all headers named
      • .h (some had .hxx)
      • as .cxx file
    • removed obsolete header (NT_dbrepair.hxx, nt_join.hxx)
  • removed some more definitions of nt_assert
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.6 KB
Line 
1// =============================================================== //
2//                                                                 //
3//   File      : NT_cb.cxx                                         //
4//   Purpose   :                                                   //
5//                                                                 //
6//   Institute of Microbiology (Technical University Munich)       //
7//   http://www.arb-home.de/                                       //
8//                                                                 //
9// =============================================================== //
10
11#include "NT_local.h"
12#include "NT_cb.h"
13#include "ad_trees.h"
14
15#include <awt_canvas.hxx>
16#include <awt_sel_boxes.hxx>
17#include <aw_awars.hxx>
18#include <aw_root.hxx>
19#include <aw_question.hxx>
20#include <aw_msg.hxx>
21#include <arbdbt.h>
22
23#include <map>
24
25
26// AISC_MKPT_PROMOTE:#ifndef ARBDB_BASE_H
27// AISC_MKPT_PROMOTE:#include <arbdb_base.h>
28// AISC_MKPT_PROMOTE:#endif
29// AISC_MKPT_PROMOTE:#ifndef AW_BASE_HXX
30// AISC_MKPT_PROMOTE:#include <aw_base.hxx>
31// AISC_MKPT_PROMOTE:#endif
32// AISC_MKPT_PROMOTE:class AWT_canvas;
33
34#define AWT_TREE(ntw)  DOWNCAST(AWT_graphic_tree *, (ntw)->tree_disp)
35
36void NT_delete_mark_all_cb(void *, AWT_canvas *ntw) {
37    if (aw_ask_sure("delete_marked_species",
38                    "Are you sure to delete species ??\n"
39                    "This will destroy primary data !!!"))
40    {
41        {
42            GB_ERROR       error = 0;
43            GB_transaction ta(ntw->gb_main);
44
45            GBDATA *gb_species, *gb_next;
46            for (gb_species = GBT_first_marked_species(ntw->gb_main);
47                 gb_species && !error;
48                 gb_species = gb_next)
49            {
50                gb_next = GBT_next_marked_species(gb_species);
51                error   = GB_delete(gb_species);
52            }
53
54            if (error) {
55                error = ta.close(error);
56                aw_message(error);
57            }
58        }
59        ntw->refresh();
60    }
61}
62
63
64AW_window *NT_create_select_tree_window(AW_root *awr, const char *awar_tree) {
65    static std::map<std::string,AW_window*> tree_select_windows;
66    if (tree_select_windows.find(awar_tree) == tree_select_windows.end()) {
67        AW_window_simple *aws = new AW_window_simple;
68
69        const char *id = strrchr(awar_tree, '/');
70        nt_assert(id);
71        id++; // use name-part of awar_tree as id (results in 'SELECT_tree_name', 'SELECT_tree_name_1', ...)
72
73        aws->init(awr, GBS_global_string("SELECT_%s", id), "SELECT A TREE");
74        aws->load_xfig("select_simple.fig");
75
76        aws->at("selection");
77        awt_create_selection_list_on_trees(GLOBAL.gb_main, (AW_window *)aws, awar_tree);
78
79        aws->auto_space(5, 5);
80        aws->button_length(6);
81
82        aws->at("button");
83        aws->callback(AW_POPDOWN);
84        aws->create_button("CLOSE", "CLOSE", "C");
85
86        aws->callback(popup_tree_admin_window);
87        aws->help_text("treeadm.hlp");
88        aws->create_button("MODIFY", "ADMIN", "A");
89
90        tree_select_windows[awar_tree] = aws;
91    }
92    return tree_select_windows[awar_tree];
93}
94
95void NT_select_bottom_tree(AW_window *aww, const char *awar_tree) {
96    GB_transaction dummy(GLOBAL.gb_main);
97    const char *ltree = GBT_name_of_bottom_tree(GLOBAL.gb_main);
98    if (ltree) aww->get_root()->awar(awar_tree)->write_string(ltree);
99}
100
101AW_window *NT_open_select_alignment_window(AW_root *awr)
102{
103    static AW_window_simple *aws = 0;
104    if (!aws) {
105        aws = new AW_window_simple;
106
107        aws->init(awr, "SELECT_ALIGNMENT", "SELECT AN ALIGNMENT");
108        aws->load_xfig("select_simple.fig");
109
110        aws->at("selection");
111        aws->callback((AW_CB0)AW_POPDOWN);
112        awt_create_selection_list_on_alignments(GLOBAL.gb_main, (AW_window *)aws, AWAR_DEFAULT_ALIGNMENT, "*=");
113
114        aws->auto_space(5, 5);
115        aws->button_length(6);
116
117        aws->at("button");
118        aws->callback(AW_POPDOWN);
119        aws->create_button("CLOSE", "CLOSE", "C");
120
121        aws->callback(AW_POPUP, (AW_CL)NT_create_alignment_window, (AW_CL)aws);
122        aws->help_text("ad_align.hlp");
123        aws->create_button("MODIFY", "ADMIN", "A");
124
125        aws->window_fit();
126    }
127    return aws;
128}
129
130void NT_system_cb(AW_window *aww, AW_CL cl_command, AW_CL cl_auto_help_file) {
131    AW_system(aww, (const char *)cl_command, (const char *)cl_auto_help_file);
132}
133
134void NT_system_in_xterm_cb(AW_window *aww, AW_CL cl_command, AW_CL cl_auto_help_file) {
135    char *command = (char *)cl_command;
136    if (cl_auto_help_file) AW_POPUP_HELP(aww, cl_auto_help_file);
137
138    GB_ERROR error = GB_xcmd(command, true, true);
139    if (error) aw_message(error);
140}
Note: See TracBrowser for help on using the repository browser.