Changeset 7801

Show
Ignore:
Timestamp:
07/08/11 18:41:16 (10 months ago)
Author:
westram
Message:

merge from dev [7710]

  • resolve some nesting in library dependencies
    • allows unit tests in GENOM and GENOM_IMPORT
Location:
trunk
Files:
9 removed
102 modified
6 copied

Legend:

Unmodified
Added
Removed
  • trunk/ARB_GDE/GDE_event.cxx

    r7186 r7801  
    487487 
    488488    GapCompression  compress          = static_cast<GapCompression>(aw_root->awar(AWAR_GDE_COMPRESSION)->read_int()); 
    489     AP_filter      *filter2           = awt_get_filter(aw_root, agde_filtercd); 
     489    AP_filter      *filter2           = awt_get_filter(agde_filtercd); 
    490490    char           *filter_name       = 0; /* aw_root->awar(AWAR_GDE_FILTER_NAME)->read_string() */ 
    491491    char           *alignment_name    = strdup("ali_unknown"); 
  • trunk/AWT/AWT_asciiprint.cxx

    r7669 r7801  
    1212#include "awt.hxx" 
    1313 
     14#include <aw_window.hxx> 
    1415#include <aw_root.hxx> 
    1516#include <aw_awar.hxx> 
  • trunk/AWT/AWT_config_manager.cxx

    r7669 r7801  
    1515#include "awt_config_manager.hxx" 
    1616#include "awt.hxx" 
     17#include <aw_window.hxx> 
    1718#include <aw_root.hxx> 
    1819#include <aw_awar.hxx> 
  • trunk/AWT/AWT_db_browser.cxx

    r7666 r7801  
    1616#include <arb_str.h> 
    1717#include <AP_Tree.hxx> 
     18#include <aw_window.hxx> 
    1819#include <aw_awar.hxx> 
    1920#include <aw_msg.hxx> 
  • trunk/AWT/AWT_sel_boxes.cxx

    r7800 r7801  
    1111#include "awt.hxx" 
    1212#include "awt_sel_boxes.hxx" 
    13 #include "awt_item_sel_list.hxx" 
     13 
     14#include <item_sel_list.h> 
    1415 
    1516#include <aw_awars.hxx> 
     
    763764} 
    764765 
    765 void AWT_popup_select_species_field_window(AW_window *aww, AW_CL cl_awar_name, AW_CL cl_gb_main) 
    766 { 
    767     static AW_window_simple *aws = 0; 
    768  
    769     // everytime map selection awar to latest user awar: 
    770     AW_root    *aw_root   = aww->get_root(); 
    771     const char *awar_name = (const char *)cl_awar_name; 
    772     aw_root->awar("tmp/viewkeys/key_text_select")->map(awar_name); 
    773  
    774     if (!aws) { 
    775         aws = new AW_window_simple; 
    776  
    777         aws->init(aw_root, "SELECT_SPECIES_FIELD", "Select species field"); 
    778         aws->load_xfig("awt/nds_sel.fig"); 
    779         aws->button_length(13); 
    780  
    781         aws->callback(AW_POPDOWN); 
    782         aws->at("close"); 
    783         aws->create_button("CLOSE", "CLOSE", "C"); 
    784  
    785         awt_create_selection_list_on_itemfields((GBDATA *)cl_gb_main, 
    786                                                 aws, 
    787                                                 "tmp/viewkeys/key_text_select", 
    788                                                 AWT_NDS_FILTER, 
    789                                                 "scandb", "rescandb", &AWT_species_selector, 20, 10); 
    790         aws->recalc_pos_atShow(AW_REPOS_TO_MOUSE); 
    791     } 
    792     aws->activate(); 
    793 } 
    794  
    795  
     766 
     767 
  • trunk/AWT/AWT_tables.cxx

    r7669 r7801  
    1313#include "awt_sel_boxes.hxx" 
    1414 
     15#include <aw_window.hxx> 
    1516#include <aw_awars.hxx> 
    1617#include <aw_file.hxx> 
  • trunk/AWT/AWT_www.cxx

    r6867 r7801  
    1212#include "awt.hxx" 
    1313 
     14#include <aw_window.hxx> 
    1415#include <aw_global_awars.hxx> 
    1516#include <aw_awars.hxx> 
  • trunk/AWT/Makefile

    r7770 r7801  
    128128AWT_canvas.o: $(ARBHOME)/INCLUDE/smartptr.h 
    129129AWT_canvas.o: $(ARBHOME)/INCLUDE/test_global.h 
    130  
    131 AWT_changekey.o: awt.hxx 
    132 AWT_changekey.o: awt_item_sel_list.hxx 
    133 AWT_changekey.o: $(ARBHOME)/INCLUDE/ad_prot.h 
    134 AWT_changekey.o: $(ARBHOME)/INCLUDE/ad_t_prot.h 
    135 AWT_changekey.o: $(ARBHOME)/INCLUDE/arb_assert.h 
    136 AWT_changekey.o: $(ARBHOME)/INCLUDE/arb_core.h 
    137 AWT_changekey.o: $(ARBHOME)/INCLUDE/arb_error.h 
    138 AWT_changekey.o: $(ARBHOME)/INCLUDE/arb_msg.h 
    139 AWT_changekey.o: $(ARBHOME)/INCLUDE/arb_strarray.h 
    140 AWT_changekey.o: $(ARBHOME)/INCLUDE/arb_string.h 
    141 AWT_changekey.o: $(ARBHOME)/INCLUDE/arbdb.h 
    142 AWT_changekey.o: $(ARBHOME)/INCLUDE/arbdb_base.h 
    143 AWT_changekey.o: $(ARBHOME)/INCLUDE/arbdbt.h 
    144 AWT_changekey.o: $(ARBHOME)/INCLUDE/arbtools.h 
    145 AWT_changekey.o: $(ARBHOME)/INCLUDE/attributes.h 
    146 AWT_changekey.o: $(ARBHOME)/INCLUDE/aw_awar.hxx 
    147 AWT_changekey.o: $(ARBHOME)/INCLUDE/aw_awars.hxx 
    148 AWT_changekey.o: $(ARBHOME)/INCLUDE/aw_base.hxx 
    149 AWT_changekey.o: $(ARBHOME)/INCLUDE/aw_keysym.hxx 
    150 AWT_changekey.o: $(ARBHOME)/INCLUDE/aw_select.hxx 
    151 AWT_changekey.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    152 AWT_changekey.o: $(ARBHOME)/INCLUDE/cb.h 
    153 AWT_changekey.o: $(ARBHOME)/INCLUDE/dupstr.h 
    154 AWT_changekey.o: $(ARBHOME)/INCLUDE/smartptr.h 
    155 AWT_changekey.o: $(ARBHOME)/INCLUDE/test_global.h 
    156130 
    157131AWT_config_manager.o: awt.hxx 
     
    241215AWT_input_mask.o: $(ARBHOME)/INCLUDE/test_global.h 
    242216 
    243 AWT_item_sel_list.o: awt.hxx 
    244 AWT_item_sel_list.o: awt_item_sel_list.hxx 
    245 AWT_item_sel_list.o: $(ARBHOME)/INCLUDE/ad_prot.h 
    246 AWT_item_sel_list.o: $(ARBHOME)/INCLUDE/ad_t_prot.h 
    247 AWT_item_sel_list.o: $(ARBHOME)/INCLUDE/arb_assert.h 
    248 AWT_item_sel_list.o: $(ARBHOME)/INCLUDE/arb_core.h 
    249 AWT_item_sel_list.o: $(ARBHOME)/INCLUDE/arb_error.h 
    250 AWT_item_sel_list.o: $(ARBHOME)/INCLUDE/arb_msg.h 
    251 AWT_item_sel_list.o: $(ARBHOME)/INCLUDE/arb_string.h 
    252 AWT_item_sel_list.o: $(ARBHOME)/INCLUDE/arbdb.h 
    253 AWT_item_sel_list.o: $(ARBHOME)/INCLUDE/arbdb_base.h 
    254 AWT_item_sel_list.o: $(ARBHOME)/INCLUDE/arbdbt.h 
    255 AWT_item_sel_list.o: $(ARBHOME)/INCLUDE/arbtools.h 
    256 AWT_item_sel_list.o: $(ARBHOME)/INCLUDE/attributes.h 
    257 AWT_item_sel_list.o: $(ARBHOME)/INCLUDE/aw_awar.hxx 
    258 AWT_item_sel_list.o: $(ARBHOME)/INCLUDE/aw_awars.hxx 
    259 AWT_item_sel_list.o: $(ARBHOME)/INCLUDE/aw_base.hxx 
    260 AWT_item_sel_list.o: $(ARBHOME)/INCLUDE/aw_keysym.hxx 
    261 AWT_item_sel_list.o: $(ARBHOME)/INCLUDE/aw_select.hxx 
    262 AWT_item_sel_list.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    263 AWT_item_sel_list.o: $(ARBHOME)/INCLUDE/cb.h 
    264 AWT_item_sel_list.o: $(ARBHOME)/INCLUDE/dupstr.h 
    265 AWT_item_sel_list.o: $(ARBHOME)/INCLUDE/smartptr.h 
    266 AWT_item_sel_list.o: $(ARBHOME)/INCLUDE/test_global.h 
    267  
    268217AWT_macro.o: awt_macro.hxx 
    269218AWT_macro.o: $(ARBHOME)/INCLUDE/ad_prot.h 
     
    307256AWT_map_key.o: $(ARBHOME)/INCLUDE/test_global.h 
    308257 
    309 AWT_nds.o: awt.hxx 
    310 AWT_nds.o: awt_config_manager.hxx 
    311 AWT_nds.o: awt_nds.hxx 
    312 AWT_nds.o: awt_sel_boxes.hxx 
    313 AWT_nds.o: $(ARBHOME)/INCLUDE/ad_prot.h 
    314 AWT_nds.o: $(ARBHOME)/INCLUDE/ad_t_prot.h 
    315 AWT_nds.o: $(ARBHOME)/INCLUDE/arb_assert.h 
    316 AWT_nds.o: $(ARBHOME)/INCLUDE/arb_core.h 
    317 AWT_nds.o: $(ARBHOME)/INCLUDE/arb_error.h 
    318 AWT_nds.o: $(ARBHOME)/INCLUDE/arb_msg.h 
    319 AWT_nds.o: $(ARBHOME)/INCLUDE/arb_string.h 
    320 AWT_nds.o: $(ARBHOME)/INCLUDE/arbdb.h 
    321 AWT_nds.o: $(ARBHOME)/INCLUDE/arbdb_base.h 
    322 AWT_nds.o: $(ARBHOME)/INCLUDE/arbdbt.h 
    323 AWT_nds.o: $(ARBHOME)/INCLUDE/arbtools.h 
    324 AWT_nds.o: $(ARBHOME)/INCLUDE/attributes.h 
    325 AWT_nds.o: $(ARBHOME)/INCLUDE/aw_awar.hxx 
    326 AWT_nds.o: $(ARBHOME)/INCLUDE/aw_awars.hxx 
    327 AWT_nds.o: $(ARBHOME)/INCLUDE/aw_base.hxx 
    328 AWT_nds.o: $(ARBHOME)/INCLUDE/aw_file.hxx 
    329 AWT_nds.o: $(ARBHOME)/INCLUDE/aw_keysym.hxx 
    330 AWT_nds.o: $(ARBHOME)/INCLUDE/aw_msg.hxx 
    331 AWT_nds.o: $(ARBHOME)/INCLUDE/aw_root.hxx 
    332 AWT_nds.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    333 AWT_nds.o: $(ARBHOME)/INCLUDE/cb.h 
    334 AWT_nds.o: $(ARBHOME)/INCLUDE/dupstr.h 
    335 AWT_nds.o: $(ARBHOME)/INCLUDE/smartptr.h 
    336 AWT_nds.o: $(ARBHOME)/INCLUDE/test_global.h 
    337  
    338 AWT_query_and_functions.o: awt.hxx 
    339 AWT_query_and_functions.o: awt_config_manager.hxx 
    340 AWT_query_and_functions.o: awt_item_sel_list.hxx 
    341 AWT_query_and_functions.o: awtlocal.hxx 
    342 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/ad_prot.h 
    343 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/ad_t_prot.h 
    344 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/arb_assert.h 
    345 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/arb_core.h 
    346 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/arb_error.h 
    347 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/arb_msg.h 
    348 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/arb_progress.h 
    349 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/arb_sort.h 
    350 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/arb_strbuf.h 
    351 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/arb_string.h 
    352 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/arbdb.h 
    353 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/arbdb_base.h 
    354 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/arbdbt.h 
    355 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/arbtools.h 
    356 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/attributes.h 
    357 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/aw_advice.hxx 
    358 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/aw_awar.hxx 
    359 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/aw_awars.hxx 
    360 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/aw_base.hxx 
    361 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/aw_color_groups.hxx 
    362 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/aw_file.hxx 
    363 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/aw_keysym.hxx 
    364 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/aw_msg.hxx 
    365 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/aw_root.hxx 
    366 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/aw_select.hxx 
    367 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    368 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/cb.h 
    369 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/dupstr.h 
    370 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/smartptr.h 
    371 AWT_query_and_functions.o: $(ARBHOME)/INCLUDE/test_global.h 
    372  
    373258AWT_sel_boxes.o: awt.hxx 
    374 AWT_sel_boxes.o: awt_item_sel_list.hxx 
    375259AWT_sel_boxes.o: awt_sel_boxes.hxx 
    376260AWT_sel_boxes.o: $(ARBHOME)/INCLUDE/ad_config.h 
     
    400284AWT_sel_boxes.o: $(ARBHOME)/INCLUDE/cb.h 
    401285AWT_sel_boxes.o: $(ARBHOME)/INCLUDE/dupstr.h 
     286AWT_sel_boxes.o: $(ARBHOME)/INCLUDE/item_sel_list.h 
     287AWT_sel_boxes.o: $(ARBHOME)/INCLUDE/items.h 
    402288AWT_sel_boxes.o: $(ARBHOME)/INCLUDE/smartptr.h 
    403289AWT_sel_boxes.o: $(ARBHOME)/INCLUDE/test_global.h 
     
    485371AWT_www.o: $(ARBHOME)/INCLUDE/static_assert.h 
    486372AWT_www.o: $(ARBHOME)/INCLUDE/test_global.h 
    487  
    488 refentries.o: awt.hxx 
    489 refentries.o: refentries.h 
    490 refentries.o: $(ARBHOME)/INCLUDE/ad_prot.h 
    491 refentries.o: $(ARBHOME)/INCLUDE/ad_t_prot.h 
    492 refentries.o: $(ARBHOME)/INCLUDE/arb_assert.h 
    493 refentries.o: $(ARBHOME)/INCLUDE/arb_core.h 
    494 refentries.o: $(ARBHOME)/INCLUDE/arb_error.h 
    495 refentries.o: $(ARBHOME)/INCLUDE/arb_msg.h 
    496 refentries.o: $(ARBHOME)/INCLUDE/arb_strarray.h 
    497 refentries.o: $(ARBHOME)/INCLUDE/arb_string.h 
    498 refentries.o: $(ARBHOME)/INCLUDE/arbdb.h 
    499 refentries.o: $(ARBHOME)/INCLUDE/arbdb_base.h 
    500 refentries.o: $(ARBHOME)/INCLUDE/arbdbt.h 
    501 refentries.o: $(ARBHOME)/INCLUDE/arbtools.h 
    502 refentries.o: $(ARBHOME)/INCLUDE/attributes.h 
    503 refentries.o: $(ARBHOME)/INCLUDE/aw_awar.hxx 
    504 refentries.o: $(ARBHOME)/INCLUDE/aw_awars.hxx 
    505 refentries.o: $(ARBHOME)/INCLUDE/aw_base.hxx 
    506 refentries.o: $(ARBHOME)/INCLUDE/aw_keysym.hxx 
    507 refentries.o: $(ARBHOME)/INCLUDE/aw_msg.hxx 
    508 refentries.o: $(ARBHOME)/INCLUDE/aw_root.hxx 
    509 refentries.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    510 refentries.o: $(ARBHOME)/INCLUDE/cb.h 
    511 refentries.o: $(ARBHOME)/INCLUDE/dbitem_set.h 
    512 refentries.o: $(ARBHOME)/INCLUDE/dupstr.h 
    513 refentries.o: $(ARBHOME)/INCLUDE/smartptr.h 
    514 refentries.o: $(ARBHOME)/INCLUDE/test_global.h 
  • trunk/AWT/awt.hxx

    r7637 r7801  
    1212#define AWT_HXX 
    1313 
    14 #ifndef AW_WINDOW_HXX 
    15 #include <aw_window.hxx> 
     14#ifndef AW_BASE_HXX 
     15#include <aw_base.hxx> 
     16#endif 
     17#ifndef ARBDB_BASE_H 
     18#include <arbdb_base.h> 
    1619#endif 
    1720 
    18 #define awt_assert(bed) arb_assert(bed) 
     21 
     22#define awt_assert(cond) arb_assert(cond) 
    1923 
    2024// ------------------------------------------------------------ 
     
    2226// holds all stuff needed to make ad_.. functions work with species _and_ genes (and more..) 
    2327 
    24 typedef enum { 
    25     AWT_QUERY_ITEM_SPECIES, 
    26     AWT_QUERY_ITEM_GENES, 
    27     AWT_QUERY_ITEM_EXPERIMENTS, 
    28  
    29     AWT_QUERY_ITEM_TYPES // how many different types do we have 
    30  
    31 } AWT_QUERY_ITEM_TYPE; 
    32  
    33 typedef enum { 
    34     QUERY_CURRENT_ITEM, 
    35     QUERY_MARKED_ITEMS, 
    36     QUERY_ALL_ITEMS 
    37 } AWT_QUERY_RANGE; 
    38  
    39 typedef enum { 
    40     AWT_QUERY_SORT_NONE = 0, 
    41  
    42     // "real" criteria: 
    43     AWT_QUERY_SORT_BY_1STFIELD_CONTENT = 1,         // by content of first selected search field 
    44     AWT_QUERY_SORT_BY_ID               = 2,         // by item id (not by parent) 
    45     AWT_QUERY_SORT_BY_NESTED_PID       = 4,         // by nested parent id 
    46     AWT_QUERY_SORT_BY_MARKED           = 8,         // marked items first 
    47     AWT_QUERY_SORT_BY_HIT_DESCRIPTION  = 16,        // by hit description 
    48     AWT_QUERY_SORT_REVERSE             = 32,        // revert following (may occur multiple times) 
    49  
    50 } AWT_QUERY_RESULT_ORDER; 
    51  
    52 #define AWT_QUERY_SORT_CRITERIA_BITS 6              // number of "real" sort criteria 
    53 #define AWT_QUERY_SORT_CRITERIA_MASK ((1<<AWT_QUERY_SORT_CRITERIA_BITS)-1) 
    54  
    55 struct ad_item_selector { // @@@ remove AW_root arguments! 
    56     AWT_QUERY_ITEM_TYPE type; 
    57  
    58     // if user selects an item in the result list, 
    59     // this callback sets the appropriate AWARs 
    60     // - for species: AWAR_SPECIES_NAME is changed (item_name = 'species_name') 
    61     // - for genes: AWAR_GENE_NAME and AWAR_SPECIES_NAME are changed (item_name = 'species_name/gene_name') 
    62     void (*update_item_awars)(GBDATA* gb_main, AW_root *aw_root, const char *item_name); 
    63     char *(*generate_item_id)(GBDATA *gb_main, GBDATA *gb_item); // @@@ remove parameter 'gb_main' 
    64     GBDATA *(*find_item_by_id)(GBDATA *gb_main, const char *id); 
    65     AW_CB selection_list_rescan_cb; 
    66     int   item_name_length; // -1 means "unknown" (might be long) 
    67  
    68     const char *change_key_path; 
    69     const char *item_name;                          // "species" or "gene" or "experiment" or "organism" 
    70     const char *items_name;                         // "species" or "genes" or "experiments" or "organisms" 
    71     const char *id_field;                           // e.g. "name" for species, genes 
    72  
    73     GBDATA *(*get_first_item_container)(GBDATA *, AW_root *, AWT_QUERY_RANGE); // AW_root may be NULL for QUERY_ALL_ITEMS and QUERY_MARKED_ITEMS 
    74     GBDATA *(*get_next_item_container)(GBDATA *, AWT_QUERY_RANGE); // use same AWT_QUERY_RANGE as in get_first_item_container() 
    75  
    76     GBDATA *(*get_first_item)(GBDATA *, AWT_QUERY_RANGE); 
    77     GBDATA *(*get_next_item)(GBDATA *, AWT_QUERY_RANGE); 
    78  
    79     GBDATA *(*get_selected_item)(GBDATA *gb_main, AW_root *aw_root); // searches the currently selected item 
    80  
    81     struct ad_item_selector *parent_selector;       // selector of parent item (or NULL if item has no parents) 
    82     GBDATA *(*get_parent)(GBDATA *gb_item);         // if 'parent_selector' is defined, this function returns the parent of the item 
    83 }; 
    84  
    85 char   *AWT_get_item_id(GBDATA *gb_main, const ad_item_selector *sel, GBDATA *gb_item); 
    86 GBDATA *AWT_get_item_with_id(GBDATA *gb_main, const ad_item_selector *sel, const char *id); 
    87  
    88 extern ad_item_selector AWT_species_selector; 
    89 extern ad_item_selector AWT_organism_selector; 
    90  
    91 // ------------------ 
    92 //      query box 
    93  
    94 typedef AW_window *(*awt_create_viewer_window_cb)(AW_root *aw_root, AW_CL cl_gb_main); 
    95  
    96 #define IS_QUERIED(gb_species, cbs)   (cbs->select_bit & GB_read_usr_private(gb_species)) 
    97 class awt_query_struct { 
    98 public: 
    99     awt_query_struct(); 
    100  
    101     GBDATA *gb_main;                                // the main database (in merge tool: source db in left query; dest db in right query) 
    102     GBDATA *gb_ref;                                 // second reference database (only used by merge tool; dest db in left query; source db in right query) 
    103     bool    expect_hit_in_ref_list;                 // merge-tool: when searching dups in fields: match only if hit exists in other DBs hitlist (true for DBII-query) 
    104     AWAR    species_name;                           // AWAR containing current species name 
    105     AWAR    tree_name;                              // AWAR containing current tree name 
    106  
    107     const ad_item_selector *selector;               // which kind of item do we handle? 
    108  
    109     int select_bit;                                 // one of 1 2 4 8 .. 128 (one for each query box) 
    110     int use_menu;                                   // put additional commands in menu 
    111  
    112     const char *ere_pos_fig;                        // rebuild enlarge reduce 
    113     const char *where_pos_fig;                      // current, marked or all species (used for sub-items of species) 
    114     const char *by_pos_fig;                         // fit query don't fit, marked 
    115  
    116     const char *qbox_pos_fig;                       // key box for queries 
    117     const char *rescan_pos_fig;                     // rescan label 
    118     const char *key_pos_fig;                        // the key 
    119     const char *query_pos_fig;                      // the query 
    120  
    121  
    122     const char *result_pos_fig;                     // the result box 
    123     const char *count_pos_fig; 
    124  
    125     const char *do_query_pos_fig; 
    126     const char *config_pos_fig; 
    127     const char *do_mark_pos_fig; 
    128     const char *do_unmark_pos_fig; 
    129     const char *do_delete_pos_fig; 
    130     const char *do_set_pos_fig;                     // multi set a key 
    131     const char *open_parser_pos_fig; 
    132     const char *do_refresh_pos_fig; 
    133  
    134     awt_create_viewer_window_cb create_view_window; 
    135  
    136     const char *info_box_pos_fig; 
    137  
    138 }; 
    139  
    140 struct DbQuery; 
    141 void awt_copy_selection_list_2_queried_species(DbQuery *cbs, AW_selection_list *id, const char *hit_description); 
    142 DbQuery *awt_create_query_box(AW_window *aws, awt_query_struct *awtqs, const char *query_id); // create the query box 
    143 void awt_search_equal_entries(AW_window *dummy, DbQuery *cbs, bool tokenize); 
    144 long awt_count_queried_items(DbQuery *cbs, AWT_QUERY_RANGE range); 
    145 void awt_unquery_all(void *dummy, DbQuery *cbs); 
    14628 
    14729// ------------------------------------------------------------ 
    148  
    149 AW_window *awt_create_item_colorizer(AW_root *aw_root, GBDATA *gb_main, const ad_item_selector *sel); 
    15030 
    15131void awt_set_long(AW_window *aws, AW_CL varname, AW_CL value);      // set an awar 
  • trunk/AWT/awt_input_mask.hxx

    r7044 r7801  
    11//  ==================================================================== // 
    22//                                                                       // 
    3 //    File      : AWT_input_mask.h                                       // 
     3//    File      : awt_input_mask.hxx                                     // 
    44//    Purpose   : General input masks                                    // 
    55//                                                                       // 
     
    1919#include <string> 
    2020#endif 
    21 #ifndef AWT_HXX 
    22 #include <awt.hxx> 
     21#ifndef AW_BASE_HXX 
     22#include <aw_base.hxx> 
    2323#endif 
    2424 
     
    7474 
    7575awt_item_type AWT_getItemType(const std::string& itemtype_name); 
    76 void          AWT_create_mask_submenu(AW_window_menu_modes *awm, awt_item_type wanted_item_type, AWT_OpenMaskWindowCallback open_mask_window_cb, AW_CL cl_user); 
     76void          AWT_create_mask_submenu(class AW_window_menu_modes *awm, awt_item_type wanted_item_type, AWT_OpenMaskWindowCallback open_mask_window_cb, AW_CL cl_user); 
    7777void          AWT_destroy_input_masks(); 
    7878 
  • trunk/AWT/awt_input_mask_internal.hxx

    r7669 r7801  
    2828#include <aw_root.hxx> 
    2929#endif 
     30#ifndef AW_WINDOW_HXX 
     31#include <aw_window.hxx> 
     32#endif 
     33#ifndef AWT_HXX 
     34#include "awt.hxx" 
     35#endif 
     36 
    3037 
    3138#ifndef _GLIBCXX_MAP 
  • trunk/AWT/awt_sel_boxes.hxx

    r6867 r7801  
    4848                               void (*callback)(AW_window*), AW_window* (*create_popup)(AW_root *, AW_default)); 
    4949 
    50 void AWT_popup_select_species_field_window(AW_window *aww, AW_CL cl_awar_name, AW_CL cl_gb_main); 
    51  
    5250// ------------------------------- 
    5351 
  • trunk/AWT/awtlocal.hxx

    r7623 r7801  
    1212#define AWTLOCAL_HXX 
    1313 
    14 typedef enum { 
    15     AWT_QUERY_GENERATE, 
    16     AWT_QUERY_ENLARGE, 
    17     AWT_QUERY_REDUCE 
    18 } AWT_QUERY_MODES; 
     14#ifndef ARBTOOLS_H 
     15#include <arbtools.h> 
     16#endif 
    1917 
    20 typedef enum { 
    21     AWT_QUERY_MARKED, 
    22     AWT_QUERY_MATCH, 
    23     AWT_QUERY_DONT_MATCH 
    24 } AWT_QUERY_TYPES; 
    25  
    26 #define AWT_QUERY_SEARCHES 3 // no of search-lines in search tool 
    27  
    28 struct DbQuery { 
    29     AW_window         *aws; 
    30     GBDATA            *gb_main;                     // the main database (in merge tool: source db in left query; dest db in right query) 
    31     GBDATA            *gb_ref;                      // second reference database (only used by merge tool; dest db in left query; source db in right query) 
    32     bool               expect_hit_in_ref_list;      // merge-tool: when searching dups in fields: match only if hit exists in other DBs hitlist (true for DBII-query) 
    33     AWAR               species_name; 
    34     const char        *tree_name; 
    35     AWAR               awar_keys[AWT_QUERY_SEARCHES]; 
    36     AWAR               awar_setkey; 
    37     AWAR               awar_setprotection; 
    38     AWAR               awar_setvalue; 
    39     AWAR               awar_parskey; 
    40     AWAR               awar_parsvalue; 
    41     AWAR               awar_parspredefined; 
    42     AWAR               awar_queries[AWT_QUERY_SEARCHES]; 
    43     AWAR               awar_not[AWT_QUERY_SEARCHES]; // not flags for queries 
    44     AWAR               awar_operator[AWT_QUERY_SEARCHES]; // not flags for queries 
    45     AWAR               awar_ere; 
    46     AWAR               awar_where; 
    47     AWAR               awar_by; 
    48     AWAR               awar_use_tag; 
    49     AWAR               awar_double_pars; 
    50     AWAR               awar_deftag; 
    51     AWAR               awar_tag; 
    52     AWAR               awar_count; 
    53     AWAR               awar_sort; 
    54     unsigned long      sort_mask;                   // contains several cascading sort criteria (AWT_QUERY_SORT_CRITERIA_BITS each) 
    55     AW_selection_list *result_id; 
    56     int                select_bit;                  // one of 1 2 4 8 .. 128 (one for each query box) 
    57  
    58     const ad_item_selector *selector; 
    59  
    60     GB_HASH *hit_description; // key = char* (hit item name), value = char* (description of hit - allocated!) 
    61 }; 
    6218 
    6319#define AWAR_TABLE_FIELD_REORDER_SOURCE_TEMPLATE "tmp/table/%s/field/reorder_source" 
     
    8743#define AWAR_TABLE_IMPORT "tmp/ad_table/import_table" 
    8844 
    89 long awt_query_update_list(void *dummy, DbQuery *cbs); 
    90  
    9145 
    9246#else 
  • trunk/AWTC/AWTC_submission.cxx

    r7800 r7801  
    99// ================================================================ // 
    1010 
    11 #include <awt.hxx> 
    12  
     11#include <aw_window.hxx> 
    1312#include <aw_awars.hxx> 
    1413#include <aw_edit.hxx> 
  • trunk/AWTC/Makefile

    r7770 r7801  
    8181AWTC_submission.o: $(ARBHOME)/INCLUDE/aw_root.hxx 
    8282AWTC_submission.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    83 AWTC_submission.o: $(ARBHOME)/INCLUDE/awt.hxx 
    8483AWTC_submission.o: $(ARBHOME)/INCLUDE/cb.h 
    8584AWTC_submission.o: $(ARBHOME)/INCLUDE/dupstr.h 
  • trunk/AWTI/AWTI_export.cxx

    r7186 r7801  
    5353    char *real_outname = 0;     // with suffix (name of first file if multiple) 
    5454 
    55     AP_filter *filter = awt_get_filter(awr, acbs); 
     55    AP_filter *filter = awt_get_filter(acbs); 
    5656    char *db_name = awr->awar(AWAR_DB_NAME)->read_string(); 
    5757 
  • trunk/AWTI/AWTI_import.cxx

    r7800 r7801  
    1313#include <seqio.hxx> 
    1414#include <awt.hxx> 
    15 #include <awt_item_sel_list.hxx> 
     15#include <item_sel_list.h> 
    1616#include <aw_advice.hxx> 
    1717#include <aw_file.hxx> 
  • trunk/AWTI/Makefile

    r7770 r7801  
    9292AWTI_import.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    9393AWTI_import.o: $(ARBHOME)/INCLUDE/awt.hxx 
    94 AWTI_import.o: $(ARBHOME)/INCLUDE/awt_item_sel_list.hxx 
    9594AWTI_import.o: $(ARBHOME)/INCLUDE/cb.h 
    9695AWTI_import.o: $(ARBHOME)/INCLUDE/dupstr.h 
    9796AWTI_import.o: $(ARBHOME)/INCLUDE/GEN.hxx 
    9897AWTI_import.o: $(ARBHOME)/INCLUDE/GenomeImport.h 
     98AWTI_import.o: $(ARBHOME)/INCLUDE/item_sel_list.h 
     99AWTI_import.o: $(ARBHOME)/INCLUDE/items.h 
    99100AWTI_import.o: $(ARBHOME)/INCLUDE/seqio.hxx 
    100101AWTI_import.o: $(ARBHOME)/INCLUDE/smartptr.h 
  • trunk/DIST/DI_save_matr.cxx

    r7111 r7801  
    1010 
    1111#include "di_matr.hxx" 
    12 #include <awt_nds.hxx> 
     12#include <nds.h> 
    1313 
    1414const char *DI_MATRIX::save(char *filename, enum DI_SAVE_TYPE type) 
  • trunk/DIST/Makefile

    r7770 r7801  
    316316DI_save_matr.o: $(ARBHOME)/INCLUDE/aw_base.hxx 
    317317DI_save_matr.o: $(ARBHOME)/INCLUDE/aw_color_groups.hxx 
    318 DI_save_matr.o: $(ARBHOME)/INCLUDE/awt_nds.hxx 
    319318DI_save_matr.o: $(ARBHOME)/INCLUDE/downcast.h 
    320319DI_save_matr.o: $(ARBHOME)/INCLUDE/dupstr.h 
     320DI_save_matr.o: $(ARBHOME)/INCLUDE/nds.h 
    321321DI_save_matr.o: $(ARBHOME)/INCLUDE/smartptr.h 
    322322DI_save_matr.o: $(ARBHOME)/INCLUDE/test_global.h 
  • trunk/EDIT4/ED4_naligner.cxx

    r7314 r7801  
    1111#include "ed4_naligner.hxx" 
    1212 
     13#include <aw_window.hxx> 
    1314#include <aw_awars.hxx> 
    1415#include <aw_root.hxx> 
    15 #include <awt.hxx> 
    1616#include <awt_sel_boxes.hxx> 
    1717#include <arbdbt.h> 
  • trunk/EDIT4/ED4_no_class.cxx

    r7661 r7801  
    2222#include <AW_rename.hxx> 
    2323#include <awt.hxx> 
    24 #include <awt_item_sel_list.hxx> 
     24#include <item_sel_list.h> 
    2525#include <awt_sel_boxes.hxx> 
    2626#include <awt_seq_colors.hxx> 
  • trunk/EDIT4/ED4_visualizeSAI.cxx

    r7314 r7801  
    1616 
    1717#include <aw_awars.hxx> 
    18 #include <awt.hxx> 
    1918#include <awt_canvas.hxx> 
    2019#include <awt_sel_boxes.hxx> 
  • trunk/EDIT4/Makefile

    r7623 r7801  
    457457ED4_naligner.o: $(ARBHOME)/INCLUDE/aw_root.hxx 
    458458ED4_naligner.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    459 ED4_naligner.o: $(ARBHOME)/INCLUDE/awt.hxx 
    460459ED4_naligner.o: $(ARBHOME)/INCLUDE/awt_sel_boxes.hxx 
    461460ED4_naligner.o: $(ARBHOME)/INCLUDE/cb.h 
     
    535534ED4_no_class.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    536535ED4_no_class.o: $(ARBHOME)/INCLUDE/awt.hxx 
    537 ED4_no_class.o: $(ARBHOME)/INCLUDE/awt_item_sel_list.hxx 
    538536ED4_no_class.o: $(ARBHOME)/INCLUDE/awt_sel_boxes.hxx 
    539537ED4_no_class.o: $(ARBHOME)/INCLUDE/awt_seq_colors.hxx 
     
    542540ED4_no_class.o: $(ARBHOME)/INCLUDE/cb.h 
    543541ED4_no_class.o: $(ARBHOME)/INCLUDE/dupstr.h 
     542ED4_no_class.o: $(ARBHOME)/INCLUDE/item_sel_list.h 
     543ED4_no_class.o: $(ARBHOME)/INCLUDE/items.h 
    544544ED4_no_class.o: $(ARBHOME)/INCLUDE/smartptr.h 
    545545ED4_no_class.o: $(ARBHOME)/INCLUDE/st_window.hxx 
     
    895895ED4_visualizeSAI.o: $(ARBHOME)/INCLUDE/aw_root.hxx 
    896896ED4_visualizeSAI.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    897 ED4_visualizeSAI.o: $(ARBHOME)/INCLUDE/awt.hxx 
    898897ED4_visualizeSAI.o: $(ARBHOME)/INCLUDE/awt_canvas.hxx 
    899898ED4_visualizeSAI.o: $(ARBHOME)/INCLUDE/awt_sel_boxes.hxx 
  • trunk/EDIT4/needs_libs

    r6863 r7801  
    77SL/FAST_ALIGNER/FAST_ALIGNER.a 
    88SL/TRANSLATE/TRANSLATE.a 
     9SL/ITEMS/ITEMS.a 
    910STAT/STAT.a 
    1011 
  • trunk/GENOM/EXP_interface.cxx

    r7635 r7801  
    1717#include "GEN_local.hxx" 
    1818#include "GEN_interface.hxx" 
    19 #include "../NTREE/ad_spec.hxx" 
    20 #include <../NTREE/nt_internal.h> 
    21  
     19 
     20#include <db_query.h> 
    2221#include <db_scanner.hxx> 
     22#include <dbui.h> 
    2323#include <awt_sel_boxes.hxx> 
    24 #include <awt_item_sel_list.hxx> 
     24#include <item_sel_list.h> 
    2525#include <aw_awars.hxx> 
    2626#include <aw_detach.hxx> 
     
    207207} 
    208208 
    209 static AW_CL    ad_global_scannerid   = 0; 
    210 static AW_root *ad_global_scannerroot = 0; 
     209static AW_CL    EXP_global_scannerid        = 0; 
     210static AW_root *EXP_global_scannerroot      = 0; 
    211211AW_CL           experiment_query_global_cbs = 0; 
    212212 
     
    458458 
    459459static void EXP_create_field_items(AW_window *aws, GBDATA *gb_main) { 
    460     aws->insert_menu_topic("exp_reorder_fields", "Reorder fields ...",    "R", "spaf_reorder.hlp", AD_F_ALL, AW_POPUP, (AW_CL)NT_create_ad_list_reorder, (AW_CL)&EXP_item_selector); 
    461     aws->insert_menu_topic("exp_delete_field",   "Delete/Hide Field ...", "D", "spaf_delete.hlp",  AD_F_ALL, AW_POPUP, (AW_CL)NT_create_ad_field_delete, (AW_CL)&EXP_item_selector); 
    462     aws->insert_menu_topic("exp_create_field",   "Create fields ...",     "C", "spaf_create.hlp",  AD_F_ALL, AW_POPUP, (AW_CL)NT_create_ad_field_create, (AW_CL)&EXP_item_selector); 
     460    static bound_item_selector *bis = 0; 
     461 
     462    exp_assert(!bis); 
     463    bis = new bound_item_selector(gb_main, EXP_item_selector); 
     464 
     465    aws->insert_menu_topic("exp_reorder_fields", "Reorder fields ...",    "R", "spaf_reorder.hlp", AD_F_ALL, AW_POPUP, (AW_CL)DBUI::NT_create_ad_list_reorder, (AW_CL)&bis); 
     466    aws->insert_menu_topic("exp_delete_field",   "Delete/Hide Field ...", "D", "spaf_delete.hlp",  AD_F_ALL, AW_POPUP, (AW_CL)DBUI::NT_create_ad_field_delete, (AW_CL)&bis); 
     467    aws->insert_menu_topic("exp_create_field",   "Create fields ...",     "C", "spaf_create.hlp",  AD_F_ALL, AW_POPUP, (AW_CL)DBUI::NT_create_ad_field_create, (AW_CL)&bis); 
    463468    aws->insert_separator(); 
    464469    aws->insert_menu_topic("exp_unhide_fields", "Show all hidden fields", "S", "scandb.hlp", AD_F_ALL, (AW_CB)awt_experiment_field_selection_list_unhide_all_cb, (AW_CL)gb_main, AWT_NDS_FILTER); 
     
    494499 
    495500 
    496         AW_CL scannerid       = create_db_scanner(gb_main, aws, "box", 0, "field", "enable", DB_VIEWER, 0, "mark", AWT_NDS_FILTER, &EXP_item_selector); 
    497         ad_global_scannerid   = scannerid; 
    498         ad_global_scannerroot = aws->get_root(); 
     501        AW_CL scannerid        = create_db_scanner(gb_main, aws, "box", 0, "field", "enable", DB_VIEWER, 0, "mark", AWT_NDS_FILTER, &EXP_item_selector); 
     502        EXP_global_scannerid   = scannerid; 
     503        EXP_global_scannerroot = aws->get_root(); 
    499504 
    500505        aws->create_menu("EXPERIMENT", "E", AD_F_ALL); 
     
    514519 
    515520            aws->at("detach"); 
    516             aws->callback(NT_detach_information_window, (AW_CL)&aws, (AW_CL)cb_info); 
     521            aws->callback(DBUI::NT_detach_information_window, (AW_CL)&aws, (AW_CL)cb_info); 
    517522            aws->create_button("DETACH", "DETACH", "D"); 
    518523 
  • trunk/GENOM/EXP_main.cxx

    r6867 r7801  
    1616#include "EXP_interface.hxx" 
    1717 
     18#include <awt.hxx> 
    1819#include <awt_input_mask.hxx> 
    1920#include <aw_awars.hxx> 
     
    2122#include <arbdbt.h> 
    2223#include <ntree.hxx> 
     24#include <db_query.h> 
    2325 
    2426class AWT_canvas; 
     
    113115} 
    114116 
     117static void EXP_run_pgt(AW_window *aww, AW_CL cl_gb_main, AW_CL) { 
     118    AW_system(aww, (GBDATA*)cl_gb_main, "arb_pgt &", 0); 
     119} 
     120 
    115121#define AWMIMT awm->insert_menu_topic 
    116122 
     
    131137        AWMIMT("experiment_colors",     "Colors ...",           "C",    "mark_colors.hlp", AWM_ALL, AW_POPUP,  (AW_CL)EXP_create_experiment_colorize_window, (AW_CL)gb_main); 
    132138 
    133 #if defined(DEBUG) 
    134139        awm->insert_separator(); 
    135         AWMIMT("pgt", "[debug-only] Proteom Genome Toolkit (PGT)", "P", "pgt.hlp", AWM_ALL, NT_system_cb, (AW_CL)"arb_pgt &", 0); 
    136 #endif // DEVEL_KAI 
     140        AWMIMT("pgt", "Proteom Genome Toolkit (PGT)", "P", "pgt.hlp", AWM_ALL, EXP_run_pgt, (AW_CL)gb_main, 0); 
    137141    } 
    138142    if (submenu) awm->close_sub_menu(); 
  • trunk/GENOM/GEN_graphic.cxx

    r7668 r7801  
    1818#include <aw_preset.hxx> 
    1919#include <awt_attributes.hxx> 
    20 #include <awt.hxx> 
    2120#include <aw_msg.hxx> 
    2221#include <aw_root.hxx> 
  • trunk/GENOM/GEN_interface.cxx

    r7635 r7801  
    1212#include "GEN_local.hxx" 
    1313 
    14 #include <ntree.hxx> 
    15 #include <../NTREE/ad_spec.hxx> 
    16 #include <../NTREE/nt_internal.h> 
    17  
    1814#include <db_scanner.hxx> 
    19 #include <awt_item_sel_list.hxx> 
     15#include <db_query.h> 
     16#include <dbui.h> 
     17#include <item_sel_list.h> 
    2018#include <awt_sel_boxes.hxx> 
    2119#include <aw_awars.hxx> 
     
    365363 
    366364 
    367 static AW_CL    ad_global_scannerid   = 0; 
    368 static AW_root *ad_global_scannerroot = 0; 
     365static AW_CL    GEN_global_scannerid   = 0; 
     366static AW_root *GEN_global_scannerroot = 0; 
    369367AW_CL           gene_query_global_cbs = 0; 
    370368 
     
    590588 
    591589static void GEN_create_field_items(AW_window *aws, GBDATA *gb_main) { 
    592     aws->insert_menu_topic("gen_reorder_fields", "Reorder fields ...",    "R", "spaf_reorder.hlp", AD_F_ALL, AW_POPUP, (AW_CL)NT_create_ad_list_reorder, (AW_CL)&GEN_item_selector); 
    593     aws->insert_menu_topic("gen_delete_field",   "Delete/Hide field ...", "D", "spaf_delete.hlp",  AD_F_ALL, AW_POPUP, (AW_CL)NT_create_ad_field_delete, (AW_CL)&GEN_item_selector); 
    594     aws->insert_menu_topic("gen_create_field",   "Create fields ...",     "C", "spaf_create.hlp",  AD_F_ALL, AW_POPUP, (AW_CL)NT_create_ad_field_create, (AW_CL)&GEN_item_selector); 
     590    static bound_item_selector *bis = 0; 
     591 
     592    gen_assert(!bis); 
     593    bis = new bound_item_selector(gb_main, GEN_item_selector); 
     594 
     595    aws->insert_menu_topic("gen_reorder_fields", "Reorder fields ...",    "R", "spaf_reorder.hlp", AD_F_ALL, AW_POPUP, (AW_CL)DBUI::NT_create_ad_list_reorder, (AW_CL)&bis); 
     596    aws->insert_menu_topic("gen_delete_field",   "Delete/Hide field ...", "D", "spaf_delete.hlp",  AD_F_ALL, AW_POPUP, (AW_CL)DBUI::NT_create_ad_field_delete, (AW_CL)&bis); 
     597    aws->insert_menu_topic("gen_create_field",   "Create fields ...",     "C", "spaf_create.hlp",  AD_F_ALL, AW_POPUP, (AW_CL)DBUI::NT_create_ad_field_create, (AW_CL)&bis); 
    595598    aws->insert_separator(); 
    596599    aws->insert_menu_topic("gen_unhide_fields", "Show all hidden fields", "S", "scandb.hlp", AD_F_ALL, (AW_CB)awt_gene_field_selection_list_unhide_all_cb, (AW_CL)gb_main, AWT_NDS_FILTER); 
     
    625628 
    626629 
    627         AW_CL scannerid       = create_db_scanner(gb_main, aws, "box", 0, "field", "enable", DB_VIEWER, 0, "mark", AWT_NDS_FILTER, &GEN_item_selector); 
    628         ad_global_scannerid   = scannerid; 
    629         ad_global_scannerroot = aws->get_root(); 
     630        AW_CL scannerid        = create_db_scanner(gb_main, aws, "box", 0, "field", "enable", DB_VIEWER, 0, "mark", AWT_NDS_FILTER, &GEN_item_selector); 
     631        GEN_global_scannerid   = scannerid; 
     632        GEN_global_scannerroot = aws->get_root(); 
    630633 
    631634        aws->create_menu("GENE", "G", AD_F_ALL); 
     
    646649 
    647650            aws->at("detach"); 
    648             aws->callback(NT_detach_information_window, (AW_CL)&aws, (AW_CL)detach_info); 
     651            aws->callback(DBUI::NT_detach_information_window, (AW_CL)&aws, (AW_CL)detach_info); 
    649652            aws->create_button("DETACH", "DETACH", "D"); 
    650653 
  • trunk/GENOM/GEN_map.cxx

    r7668 r7801  
    1717#include "EXP_interface.hxx" 
    1818#include "EXP_local.hxx" 
    19 #include "../NTREE/ad_spec.hxx" // needed for species query window 
    20  
     19 
     20#include <dbui.h> 
    2121#include <aw_preset.hxx> 
    2222#include <aw_awars.hxx> 
    2323#include <aw_question.hxx> 
    2424#include <AW_rename.hxx> 
     25#include <awt.hxx> 
    2526#include <awt_input_mask.hxx> 
    2627#include <aw_msg.hxx> 
     
    2829#include <aw_root.hxx> 
    2930#include <adGene.h> 
     31#include <db_query.h> 
    3032 
    3133#include <map> 
     
    14441446void GEN_popup_organism_window(AW_window *aww, AW_CL cl_gb_main, AW_CL) { 
    14451447    // used to avoid that the organisms info window is stored in a menu (or with a button) 
    1446     AW_window *aws = NTX_create_organism_window(aww->get_root(), cl_gb_main); 
     1448    AW_window *aws = DBUI::NTX_create_organism_window(aww->get_root(), cl_gb_main); 
    14471449    aws->activate(); 
    14481450} 
     
    16821684    at(gene_x, first_line_y); 
    16831685    help_text("organism_search.hlp"); 
    1684     callback(AW_POPUP, (AW_CL)NTX_create_query_window, 0);  // @@@ hier sollte eine Art "Organism-Search" verwendet werden (AWT_organism_selector anpassen) 
     1686    callback(AW_POPUP, (AW_CL)DBUI::NTX_create_query_window, (AW_CL)gb_main); // @@@ should use an organism search (using AWT_organism_selector)  
    16851687    create_button("SEARCH_ORGANISM", AWAR_LOCAL_ORGANISM_NAME(window_nr)); 
    16861688 
  • trunk/GENOM/GEN_nds.cxx

    r7337 r7801  
    1212#include "GEN_interface.hxx" 
    1313 
    14 #include <awt.hxx> 
    15 #include <awt_nds.hxx> 
    16 #include <awt_item_sel_list.hxx> 
     14#include <nds.h> 
     15#include <item_sel_list.h> 
    1716#include <awt_sel_boxes.hxx> 
    1817#include <aw_msg.hxx> 
  • trunk/GENOM/Makefile

    r7667 r7801  
    4343# For formatting issues see SOURCE_TOOLS/fix_depends.pl 
    4444 
    45 EXP_interface.o: ../NTREE/ad_spec.hxx 
    46 EXP_interface.o: ../NTREE/nt_internal.h 
    4745EXP_interface.o: EXP.hxx 
    4846EXP_interface.o: EXP_interface.hxx 
     
    7270EXP_interface.o: $(ARBHOME)/INCLUDE/aw_select.hxx 
    7371EXP_interface.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    74 EXP_interface.o: $(ARBHOME)/INCLUDE/awt.hxx 
    75 EXP_interface.o: $(ARBHOME)/INCLUDE/awt_item_sel_list.hxx 
    7672EXP_interface.o: $(ARBHOME)/INCLUDE/awt_sel_boxes.hxx 
    7773EXP_interface.o: $(ARBHOME)/INCLUDE/cb.h 
     74EXP_interface.o: $(ARBHOME)/INCLUDE/db_query.h 
    7875EXP_interface.o: $(ARBHOME)/INCLUDE/db_scanner.hxx 
     76EXP_interface.o: $(ARBHOME)/INCLUDE/dbui.h 
    7977EXP_interface.o: $(ARBHOME)/INCLUDE/dupstr.h 
     78EXP_interface.o: $(ARBHOME)/INCLUDE/item_sel_list.h 
     79EXP_interface.o: $(ARBHOME)/INCLUDE/items.h 
    8080EXP_interface.o: $(ARBHOME)/INCLUDE/smartptr.h 
    8181EXP_interface.o: $(ARBHOME)/INCLUDE/test_global.h 
     
    106106EXP_main.o: $(ARBHOME)/INCLUDE/awt_input_mask.hxx 
    107107EXP_main.o: $(ARBHOME)/INCLUDE/cb.h 
     108EXP_main.o: $(ARBHOME)/INCLUDE/db_query.h 
    108109EXP_main.o: $(ARBHOME)/INCLUDE/dupstr.h 
     110EXP_main.o: $(ARBHOME)/INCLUDE/items.h 
    109111EXP_main.o: $(ARBHOME)/INCLUDE/ntree.hxx 
    110112EXP_main.o: $(ARBHOME)/INCLUDE/smartptr.h 
     
    165167GEN_graphic.o: $(ARBHOME)/INCLUDE/aw_root.hxx 
    166168GEN_graphic.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    167 GEN_graphic.o: $(ARBHOME)/INCLUDE/awt.hxx 
    168169GEN_graphic.o: $(ARBHOME)/INCLUDE/awt_attributes.hxx 
    169170GEN_graphic.o: $(ARBHOME)/INCLUDE/awt_canvas.hxx 
     
    173174GEN_graphic.o: $(ARBHOME)/INCLUDE/test_global.h 
    174175 
    175 GEN_interface.o: ../NTREE/ad_spec.hxx 
    176 GEN_interface.o: ../NTREE/nt_internal.h 
    177176GEN_interface.o: GEN.hxx 
    178177GEN_interface.o: GEN_local.hxx 
     
    199198GEN_interface.o: $(ARBHOME)/INCLUDE/aw_select.hxx 
    200199GEN_interface.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    201 GEN_interface.o: $(ARBHOME)/INCLUDE/awt.hxx 
    202 GEN_interface.o: $(ARBHOME)/INCLUDE/awt_item_sel_list.hxx 
    203200GEN_interface.o: $(ARBHOME)/INCLUDE/awt_sel_boxes.hxx 
    204201GEN_interface.o: $(ARBHOME)/INCLUDE/cb.h 
     202GEN_interface.o: $(ARBHOME)/INCLUDE/db_query.h 
    205203GEN_interface.o: $(ARBHOME)/INCLUDE/db_scanner.hxx 
     204GEN_interface.o: $(ARBHOME)/INCLUDE/dbui.h 
    206205GEN_interface.o: $(ARBHOME)/INCLUDE/dupstr.h 
    207 GEN_interface.o: $(ARBHOME)/INCLUDE/ntree.hxx 
     206GEN_interface.o: $(ARBHOME)/INCLUDE/item_sel_list.h 
     207GEN_interface.o: $(ARBHOME)/INCLUDE/items.h 
    208208GEN_interface.o: $(ARBHOME)/INCLUDE/smartptr.h 
    209209GEN_interface.o: $(ARBHOME)/INCLUDE/test_global.h 
    210210 
    211 GEN_map.o: ../NTREE/ad_spec.hxx 
    212211GEN_map.o: EXP.hxx 
    213212GEN_map.o: EXP_interface.hxx 
     
    250249GEN_map.o: $(ARBHOME)/INCLUDE/awt_input_mask.hxx 
    251250GEN_map.o: $(ARBHOME)/INCLUDE/cb.h 
     251GEN_map.o: $(ARBHOME)/INCLUDE/db_query.h 
     252GEN_map.o: $(ARBHOME)/INCLUDE/dbui.h 
    252253GEN_map.o: $(ARBHOME)/INCLUDE/dupstr.h 
     254GEN_map.o: $(ARBHOME)/INCLUDE/items.h 
    253255GEN_map.o: $(ARBHOME)/INCLUDE/smartptr.h 
    254256GEN_map.o: $(ARBHOME)/INCLUDE/test_global.h 
     
    272274GEN_nds.o: $(ARBHOME)/INCLUDE/aw_select.hxx 
    273275GEN_nds.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    274 GEN_nds.o: $(ARBHOME)/INCLUDE/awt.hxx 
    275 GEN_nds.o: $(ARBHOME)/INCLUDE/awt_item_sel_list.hxx 
    276 GEN_nds.o: $(ARBHOME)/INCLUDE/awt_nds.hxx 
    277276GEN_nds.o: $(ARBHOME)/INCLUDE/awt_sel_boxes.hxx 
    278277GEN_nds.o: $(ARBHOME)/INCLUDE/cb.h 
    279278GEN_nds.o: $(ARBHOME)/INCLUDE/dupstr.h 
     279GEN_nds.o: $(ARBHOME)/INCLUDE/item_sel_list.h 
     280GEN_nds.o: $(ARBHOME)/INCLUDE/items.h 
     281GEN_nds.o: $(ARBHOME)/INCLUDE/nds.h 
    280282GEN_nds.o: $(ARBHOME)/INCLUDE/smartptr.h 
    281283GEN_nds.o: $(ARBHOME)/INCLUDE/test_global.h 
  • trunk/GENOM/needs_libs

    r6448 r7801  
    33# depends on NTREE/NTREE.a # fix this 
    44 
    5 SL/DB_SCANNER/DB_SCANNER.a 
     5SL/DB_UI/DB_UI.a 
     6#SL/DB_SCANNER/DB_SCANNER.a 
     7#SL/DB_QUERY/DB_QUERY.a 
     8SL/NDS/NDS.a 
    69SL/TRANSLATE/TRANSLATE.a 
    710 
  • trunk/GENOM_IMPORT/Location.cxx

    r6490 r7801  
    265265 
    266266 
     267// -------------------------------------------------------------------------------- 
     268 
     269#ifdef UNIT_TESTS 
     270#include <test_unit.h> 
     271 
     272void TEST_gene_location() { 
     273    // TEST_ASSERT(0); // @@@ works - keep it 
     274} 
     275 
     276#endif // UNIT_TESTS 
  • trunk/GENOM_IMPORT/Makefile

    r7183 r7801  
    170170Location.o: $(ARBHOME)/INCLUDE/smartptr.h 
    171171Location.o: $(ARBHOME)/INCLUDE/test_global.h 
     172Location.o: $(ARBHOME)/INCLUDE/test_unit.h 
    172173 
    173174MetaInfo.o: defs.h 
  • trunk/MERGE/MG_checkfield.cxx

    r7337 r7801  
    1111#include "merge.hxx" 
    1212 
    13 #include <awt.hxx> 
    14 #include <awt_item_sel_list.hxx> 
     13#include <item_sel_list.h> 
    1514#include <awt_sel_boxes.hxx> 
    1615 
  • trunk/MERGE/MG_configs.cxx

    r6867 r7801  
    1616 
    1717#include <ad_config.h> 
    18 #include <awt.hxx> 
    1918#include <awt_sel_boxes.hxx> 
    2019#include <aw_root.hxx> 
  • trunk/MERGE/MG_extendeds.cxx

    r6867 r7801  
    1010 
    1111#include "merge.hxx" 
     12 
    1213#include <db_scanner.hxx> 
    13 #include <awt.hxx> 
    1414#include <awt_sel_boxes.hxx> 
    1515#include <aw_awars.hxx> 
     
    1717#include <aw_root.hxx> 
    1818#include <arbdbt.h> 
     19#include <items.h> 
    1920 
    2021#define AWAR_EX_NAME1 "tmp/merge1/extended_name" 
  • trunk/MERGE/MG_gene_species.cxx

    r6867 r7801  
    1616#include "merge.hxx" 
    1717 
    18 #include <awt.hxx> 
    1918#include <awt_config_manager.hxx> 
    2019#include <aw_awars.hxx> 
  • trunk/MERGE/MG_preserves.cxx

    r7800 r7801  
    1616#include "MG_adapt_ali.hxx" 
    1717 
    18 #include <awt.hxx> 
    1918#include <aw_awars.hxx> 
    2019#include <aw_root.hxx> 
  • trunk/MERGE/MG_species.cxx

    r7800 r7801  
    1313 
    1414#include <AW_rename.hxx> 
     15#include <db_query.h> 
    1516#include <db_scanner.hxx> 
    16 #include <awt.hxx> 
    17 #include <awt_item_sel_list.hxx> 
     17#include <item_sel_list.h> 
    1818#include <aw_awars.hxx> 
    1919#include <aw_msg.hxx> 
  • trunk/MERGE/Makefile

    r7770 r7801  
    118118MG_checkfield.o: $(ARBHOME)/INCLUDE/aw_select.hxx 
    119119MG_checkfield.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    120 MG_checkfield.o: $(ARBHOME)/INCLUDE/awt.hxx 
    121 MG_checkfield.o: $(ARBHOME)/INCLUDE/awt_item_sel_list.hxx 
    122120MG_checkfield.o: $(ARBHOME)/INCLUDE/awt_sel_boxes.hxx 
    123121MG_checkfield.o: $(ARBHOME)/INCLUDE/cb.h 
    124122MG_checkfield.o: $(ARBHOME)/INCLUDE/dupstr.h 
     123MG_checkfield.o: $(ARBHOME)/INCLUDE/item_sel_list.h 
     124MG_checkfield.o: $(ARBHOME)/INCLUDE/items.h 
    125125MG_checkfield.o: $(ARBHOME)/INCLUDE/smartptr.h 
    126126MG_checkfield.o: $(ARBHOME)/INCLUDE/test_global.h 
     
    145145MG_configs.o: $(ARBHOME)/INCLUDE/aw_root.hxx 
    146146MG_configs.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    147 MG_configs.o: $(ARBHOME)/INCLUDE/awt.hxx 
    148147MG_configs.o: $(ARBHOME)/INCLUDE/awt_sel_boxes.hxx 
    149148MG_configs.o: $(ARBHOME)/INCLUDE/cb.h 
     
    173172MG_extendeds.o: $(ARBHOME)/INCLUDE/aw_root.hxx 
    174173MG_extendeds.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    175 MG_extendeds.o: $(ARBHOME)/INCLUDE/awt.hxx 
    176174MG_extendeds.o: $(ARBHOME)/INCLUDE/awt_sel_boxes.hxx 
    177175MG_extendeds.o: $(ARBHOME)/INCLUDE/cb.h 
    178176MG_extendeds.o: $(ARBHOME)/INCLUDE/db_scanner.hxx 
    179177MG_extendeds.o: $(ARBHOME)/INCLUDE/dupstr.h 
     178MG_extendeds.o: $(ARBHOME)/INCLUDE/items.h 
    180179MG_extendeds.o: $(ARBHOME)/INCLUDE/smartptr.h 
    181180MG_extendeds.o: $(ARBHOME)/INCLUDE/test_global.h 
     
    204203MG_gene_species.o: $(ARBHOME)/INCLUDE/aw_root.hxx 
    205204MG_gene_species.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    206 MG_gene_species.o: $(ARBHOME)/INCLUDE/awt.hxx 
    207205MG_gene_species.o: $(ARBHOME)/INCLUDE/awt_config_manager.hxx 
    208206MG_gene_species.o: $(ARBHOME)/INCLUDE/cb.h 
     
    293291MG_preserves.o: $(ARBHOME)/INCLUDE/aw_root.hxx 
    294292MG_preserves.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    295 MG_preserves.o: $(ARBHOME)/INCLUDE/awt.hxx 
    296293MG_preserves.o: $(ARBHOME)/INCLUDE/cb.h 
    297294MG_preserves.o: $(ARBHOME)/INCLUDE/dupstr.h 
     
    327324MG_species.o: $(ARBHOME)/INCLUDE/aw_select.hxx 
    328325MG_species.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    329 MG_species.o: $(ARBHOME)/INCLUDE/awt.hxx 
    330 MG_species.o: $(ARBHOME)/INCLUDE/awt_item_sel_list.hxx 
    331326MG_species.o: $(ARBHOME)/INCLUDE/cb.h 
     327MG_species.o: $(ARBHOME)/INCLUDE/db_query.h 
    332328MG_species.o: $(ARBHOME)/INCLUDE/db_scanner.hxx 
    333329MG_species.o: $(ARBHOME)/INCLUDE/dupstr.h 
     330MG_species.o: $(ARBHOME)/INCLUDE/item_sel_list.h 
     331MG_species.o: $(ARBHOME)/INCLUDE/items.h 
    334332MG_species.o: $(ARBHOME)/INCLUDE/smartptr.h 
    335333MG_species.o: $(ARBHOME)/INCLUDE/test_global.h 
  • trunk/MERGE/needs_libs

    r6448 r7801  
    11# libraries needed to link against MERGE/MERGE.a 
    22 
    3 AWT/libAWT.so 
    4 SL/DB_SCANNER/DB_SCANNER.a 
     3SL/DB_UI/DB_UI.a 
     4#SL/DB_QUERY/DB_QUERY.a 
     5#SL/DB_SCANNER/DB_SCANNER.a 
    56 
  • trunk/MULTI_PROBE/MP_noclass.cxx

    r7334 r7801  
    1414#include "MP_probe.hxx" 
    1515 
    16 #include <awt.hxx> 
    1716#include <aw_select.hxx> 
    1817#include <aw_msg.hxx> 
  • trunk/MULTI_PROBE/Makefile

    r7623 r7801  
    178178MP_noclass.o: $(ARBHOME)/INCLUDE/aw_select.hxx 
    179179MP_noclass.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    180 MP_noclass.o: $(ARBHOME)/INCLUDE/awt.hxx 
    181180MP_noclass.o: $(ARBHOME)/INCLUDE/awt_canvas.hxx 
    182181MP_noclass.o: $(ARBHOME)/INCLUDE/bytestring.h 
  • trunk/Makefile

    r7800 r7801  
    682682endif 
    683683 
    684 # -------------------------------  
    685 #     List of all Directories 
     684# --------------------------------------- 
     685#     List of all top level directories 
    686686 
    687687ARCHS = \ 
     
    790790                SERVERCNTRL/SERVERCNTRL.a \ 
    791791                SL/AW_NAME/AW_NAME.a \ 
     792                SL/DB_UI/DB_UI.a \ 
    792793                SL/DB_SCANNER/DB_SCANNER.a \ 
     794                SL/DB_QUERY/DB_QUERY.a \ 
    793795                SL/SEQIO/SEQIO.a \ 
    794796                SL/FILE_BUFFER/FILE_BUFFER.a \ 
     
    796798                SL/HELIX/HELIX.a \ 
    797799                SL/REGEXPR/REGEXPR.a \ 
     800                SL/REFENTRIES/REFENTRIES.a \ 
     801                SL/NDS/NDS.a \ 
     802                SL/ITEMS/ITEMS.a \ 
    798803                SL/TRANSLATE/TRANSLATE.a \ 
    799804                SL/TREEDISP/TREEDISP.a \ 
     
    835840                SL/FAST_ALIGNER/FAST_ALIGNER.a \ 
    836841                SL/FILE_BUFFER/FILE_BUFFER.a \ 
     842                SL/ITEMS/ITEMS.a \ 
    837843                SL/GUI_ALIVIEW/GUI_ALIVIEW.a \ 
    838844                SL/HELIX/HELIX.a \ 
     
    896902                SL/HELIX/HELIX.a \ 
    897903                SL/MATRIX/MATRIX.a \ 
     904                SL/NDS/NDS.a \ 
     905                SL/ITEMS/ITEMS.a \ 
    898906                SL/NEIGHBOURJOIN/NEIGHBOURJOIN.a \ 
    899907                XML/XML.a \ 
     
    916924                SL/GUI_ALIVIEW/GUI_ALIVIEW.a \ 
    917925                SL/HELIX/HELIX.a \ 
     926                SL/NDS/NDS.a \ 
     927                SL/ITEMS/ITEMS.a \ 
    918928                SL/TRANSLATE/TRANSLATE.a \ 
    919929                SL/TREEDISP/TREEDISP.a \ 
     
    16511661 
    16521662UNITS_WORKING = \ 
     1663        $(RNA3D_TEST) \ 
     1664        ALIV3/ALIV3.test \ 
     1665        ARB_GDE/ARB_GDE.test \ 
     1666        AWT/AWT.test \ 
     1667        CONSENSUS_TREE/CONSENSUS_TREE.test \ 
     1668        DBSERVER/DBSERVER.test \ 
     1669        DIST/DIST.test \ 
     1670        EISPACK/EISPACK.test \ 
     1671        GENOM/GENOM.test \ 
     1672        GL/glAW/libglAW.test \ 
     1673        GL/glpng/libglpng_arb.test \ 
    16531674        ISLAND_HOPPING/ISLAND_HOPPING.test \ 
     1675        NALIGNER/NALIGNER.test \ 
     1676        NAMES/NAMES.test \ 
     1677        PARSIMONY/PARSIMONY.test \ 
     1678        PGT/PGT.test \ 
     1679        PHYLO/PHYLO.test \ 
     1680        PRIMER_DESIGN/PRIMER_DESIGN.test \ 
     1681        PROBE/PROBE.test \ 
     1682        PROBE_DESIGN/PROBE_DESIGN.test \ 
     1683        ptpan/PROBE.test \ 
     1684        SECEDIT/SECEDIT.test \ 
     1685        SEQ_QUALITY/SEQ_QUALITY.test \ 
     1686        SERVERCNTRL/SERVERCNTRL.test \ 
    16541687        SL/ALIVIEW/ALIVIEW.test \ 
    16551688        SL/AP_TREE/AP_TREE.test \ 
     
    16571690        SL/AW_HELIX/AW_HELIX.test \ 
    16581691        SL/AW_NAME/AW_NAME.test \ 
     1692        SL/DB_QUERY/DB_QUERY.test \ 
    16591693        SL/DB_SCANNER/DB_SCANNER.test \ 
    16601694        SL/FILE_BUFFER/FILE_BUFFER.test \ 
    16611695        SL/FILTER/FILTER.test \ 
    16621696        SL/GUI_ALIVIEW/GUI_ALIVIEW.test \ 
    1663         ARB_GDE/ARB_GDE.test \ 
    16641697        SL/HELIX/HELIX.test \ 
     1698        SL/ITEMS/ITEMS.test \ 
    16651699        SL/MATRIX/MATRIX.test \ 
     1700        SL/NDS/NDS.test \ 
    16661701        SL/NEIGHBOURJOIN/NEIGHBOURJOIN.test \ 
     1702        SL/REFENTRIES/REFENTRIES.test \ 
    16671703        SL/REGEXPR/REGEXPR.test \ 
    16681704        SL/SEQUENCE/SEQUENCE.test \ 
    16691705        SL/TRANSLATE/TRANSLATE.test \ 
    16701706        SL/TREE_READ/TREE_READ.test \ 
     1707        SL/TREE_WRITE/TREE_WRITE.test \ 
     1708        STAT/STAT.test \ 
     1709        TREEGEN/TREEGEN.test \ 
     1710        WETC/WETC.test \ 
    16711711        XML/XML.test \ 
    1672         SL/TREE_WRITE/TREE_WRITE.test \ 
    1673         ALIV3/ALIV3.test \ 
    1674         CONSENSUS_TREE/CONSENSUS_TREE.test \ 
    1675         EISPACK/EISPACK.test \ 
    1676         DIST/DIST.test \ 
    1677         NALIGNER/NALIGNER.test \ 
    1678         GL/glAW/libglAW.test \ 
    1679         GL/glpng/libglpng_arb.test \ 
    1680         SEQ_QUALITY/SEQ_QUALITY.test \ 
    1681         STAT/STAT.test \ 
    1682         WETC/WETC.test \ 
    1683         ptpan/PROBE.test \ 
    1684         PHYLO/PHYLO.test \ 
    1685         PROBE_DESIGN/PROBE_DESIGN.test \ 
    1686         PRIMER_DESIGN/PRIMER_DESIGN.test \ 
    1687         PGT/PGT.test \ 
    1688         PARSIMONY/PARSIMONY.test \ 
    1689         TREEGEN/TREEGEN.test \ 
    1690         NAMES/NAMES.test \ 
    1691         PROBE/PROBE.test \ 
    1692         DBSERVER/DBSERVER.test \ 
    1693         SECEDIT/SECEDIT.test \ 
    1694         $(RNA3D_TEST) \ 
    1695         SERVERCNTRL/SERVERCNTRL.test \ 
    1696         AWT/AWT.test \ 
    16971712 
    16981713# untestable units 
     
    17011716 
    17021717UNITS_NEED_FIX = \ 
    1703         GENOM_IMPORT/GENOM_IMPORT.test \ 
    1704         GENOM/GENOM.test \ 
    17051718        AWTI/AWTI.test \ 
    17061719 
     
    17111724# for the moment, put all units containing tests into UNITS_TESTED: 
    17121725UNITS_TESTED = \ 
     1726        GENOM_IMPORT/GENOM_IMPORT.test \ 
    17131727        CORE/CORE.test \ 
    17141728        SL/TREEDISP/TREEDISP.test \ 
  • trunk/NTREE/Makefile

    r7799 r7801  
    111111ad_ext.o: $(ARBHOME)/INCLUDE/aw_root.hxx 
    112112ad_ext.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    113 ad_ext.o: $(ARBHOME)/INCLUDE/awt.hxx 
    114113ad_ext.o: $(ARBHOME)/INCLUDE/awt_sel_boxes.hxx 
    115114ad_ext.o: $(ARBHOME)/INCLUDE/cb.h 
    116115ad_ext.o: $(ARBHOME)/INCLUDE/db_scanner.hxx 
    117116ad_ext.o: $(ARBHOME)/INCLUDE/dupstr.h 
     117ad_ext.o: $(ARBHOME)/INCLUDE/items.h 
    118118ad_ext.o: $(ARBHOME)/INCLUDE/smartptr.h 
    119119ad_ext.o: $(ARBHOME)/INCLUDE/test_global.h 
    120120 
    121 ad_spec.o: ad_spec.hxx 
    122121ad_spec.o: map_viewer.hxx 
    123122ad_spec.o: nt_internal.h 
     
    134133ad_spec.o: $(ARBHOME)/INCLUDE/arb_msg.h 
    135134ad_spec.o: $(ARBHOME)/INCLUDE/arb_progress.h 
    136 ad_spec.o: $(ARBHOME)/INCLUDE/arb_strbuf.h 
    137135ad_spec.o: $(ARBHOME)/INCLUDE/arb_string.h 
    138136ad_spec.o: $(ARBHOME)/INCLUDE/ARB_Tree.hxx 
     
    147145ad_spec.o: $(ARBHOME)/INCLUDE/aw_base.hxx 
    148146ad_spec.o: $(ARBHOME)/INCLUDE/aw_color_groups.hxx 
    149 ad_spec.o: $(ARBHOME)/INCLUDE/aw_detach.hxx 
    150147ad_spec.o: $(ARBHOME)/INCLUDE/aw_device.hxx 
    151148ad_spec.o: $(ARBHOME)/INCLUDE/aw_keysym.hxx 
    152149ad_spec.o: $(ARBHOME)/INCLUDE/aw_msg.hxx 
    153150ad_spec.o: $(ARBHOME)/INCLUDE/aw_position.hxx 
    154 ad_spec.o: $(ARBHOME)/INCLUDE/AW_rename.hxx 
    155151ad_spec.o: $(ARBHOME)/INCLUDE/aw_root.hxx 
    156 ad_spec.o: $(ARBHOME)/INCLUDE/aw_select.hxx 
    157152ad_spec.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    158 ad_spec.o: $(ARBHOME)/INCLUDE/awt.hxx 
    159153ad_spec.o: $(ARBHOME)/INCLUDE/awt_canvas.hxx 
    160 ad_spec.o: $(ARBHOME)/INCLUDE/awt_item_sel_list.hxx 
    161 ad_spec.o: $(ARBHOME)/INCLUDE/awt_sel_boxes.hxx 
    162154ad_spec.o: $(ARBHOME)/INCLUDE/awt_www.hxx 
    163 ad_spec.o: $(ARBHOME)/INCLUDE/awtc_next_neighbours.hxx 
    164 ad_spec.o: $(ARBHOME)/INCLUDE/awtlocal.hxx 
    165155ad_spec.o: $(ARBHOME)/INCLUDE/cb.h 
    166 ad_spec.o: $(ARBHOME)/INCLUDE/db_scanner.hxx 
     156ad_spec.o: $(ARBHOME)/INCLUDE/dbui.h 
    167157ad_spec.o: $(ARBHOME)/INCLUDE/downcast.h 
    168158ad_spec.o: $(ARBHOME)/INCLUDE/dupstr.h 
    169 ad_spec.o: $(ARBHOME)/INCLUDE/probe_design.hxx 
    170159ad_spec.o: $(ARBHOME)/INCLUDE/smartptr.h 
    171160ad_spec.o: $(ARBHOME)/INCLUDE/test_global.h 
     
    228217ad_trees.o: $(ARBHOME)/INCLUDE/aw_root.hxx 
    229218ad_trees.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    230 ad_trees.o: $(ARBHOME)/INCLUDE/awt_nds.hxx 
    231219ad_trees.o: $(ARBHOME)/INCLUDE/awt_sel_boxes.hxx 
    232220ad_trees.o: $(ARBHOME)/INCLUDE/cb.h 
    233221ad_trees.o: $(ARBHOME)/INCLUDE/dupstr.h 
     222ad_trees.o: $(ARBHOME)/INCLUDE/nds.h 
    234223ad_trees.o: $(ARBHOME)/INCLUDE/smartptr.h 
    235224ad_trees.o: $(ARBHOME)/INCLUDE/test_global.h 
     
    433422NT_concatenate.o: $(ARBHOME)/INCLUDE/aw_select.hxx 
    434423NT_concatenate.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    435 NT_concatenate.o: $(ARBHOME)/INCLUDE/awt.hxx 
    436 NT_concatenate.o: $(ARBHOME)/INCLUDE/awt_item_sel_list.hxx 
    437424NT_concatenate.o: $(ARBHOME)/INCLUDE/awt_sel_boxes.hxx 
    438425NT_concatenate.o: $(ARBHOME)/INCLUDE/cb.h 
    439426NT_concatenate.o: $(ARBHOME)/INCLUDE/dupstr.h 
     427NT_concatenate.o: $(ARBHOME)/INCLUDE/item_sel_list.h 
     428NT_concatenate.o: $(ARBHOME)/INCLUDE/items.h 
    440429NT_concatenate.o: $(ARBHOME)/INCLUDE/smartptr.h 
    441430NT_concatenate.o: $(ARBHOME)/INCLUDE/test_global.h 
     
    464453NT_dbrepair.o: $(ARBHOME)/INCLUDE/aw_root.hxx 
    465454NT_dbrepair.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    466 NT_dbrepair.o: $(ARBHOME)/INCLUDE/awt.hxx 
    467455NT_dbrepair.o: $(ARBHOME)/INCLUDE/cb.h 
    468456NT_dbrepair.o: $(ARBHOME)/INCLUDE/dupstr.h 
    469457NT_dbrepair.o: $(ARBHOME)/INCLUDE/EXP.hxx 
    470458NT_dbrepair.o: $(ARBHOME)/INCLUDE/GEN.hxx 
     459NT_dbrepair.o: $(ARBHOME)/INCLUDE/items.h 
    471460NT_dbrepair.o: $(ARBHOME)/INCLUDE/smartptr.h 
    472461NT_dbrepair.o: $(ARBHOME)/INCLUDE/test_global.h 
     
    501490NT_edconf.o: $(ARBHOME)/INCLUDE/test_global.h 
    502491 
    503 NT_extern.o: ad_spec.hxx 
    504492NT_extern.o: ad_trees.hxx 
    505493NT_extern.o: ap_consensus.hxx 
     
    549537NT_extern.o: $(ARBHOME)/INCLUDE/awt_input_mask.hxx 
    550538NT_extern.o: $(ARBHOME)/INCLUDE/awt_macro.hxx 
    551 NT_extern.o: $(ARBHOME)/INCLUDE/awt_nds.hxx 
    552539NT_extern.o: $(ARBHOME)/INCLUDE/awt_sel_boxes.hxx 
    553540NT_extern.o: $(ARBHOME)/INCLUDE/awt_www.hxx 
     
    555542NT_extern.o: $(ARBHOME)/INCLUDE/awti_export.hxx 
    556543NT_extern.o: $(ARBHOME)/INCLUDE/cb.h 
     544NT_extern.o: $(ARBHOME)/INCLUDE/db_query.h 
    557545NT_extern.o: $(ARBHOME)/INCLUDE/dbitem_set.h 
     546NT_extern.o: $(ARBHOME)/INCLUDE/dbui.h 
    558547NT_extern.o: $(ARBHOME)/INCLUDE/downcast.h 
    559548NT_extern.o: $(ARBHOME)/INCLUDE/dupstr.h 
     
    561550NT_extern.o: $(ARBHOME)/INCLUDE/gde.hxx 
    562551NT_extern.o: $(ARBHOME)/INCLUDE/GEN.hxx 
     552NT_extern.o: $(ARBHOME)/INCLUDE/items.h 
    563553NT_extern.o: $(ARBHOME)/INCLUDE/multi_probe.hxx 
     554NT_extern.o: $(ARBHOME)/INCLUDE/nds.h 
    564555NT_extern.o: $(ARBHOME)/INCLUDE/primer_design.hxx 
    565556NT_extern.o: $(ARBHOME)/INCLUDE/probe_design.hxx 
     
    573564NT_extern.o: $(ARBHOME)/INCLUDE/TreeDisplay.hxx 
    574565 
    575 NT_import.o: ad_spec.hxx 
    576566NT_import.o: nt_internal.h 
    577567NT_import.o: $(ARBHOME)/INCLUDE/ad_prot.h 
     
    598588NT_import.o: $(ARBHOME)/INCLUDE/awti_import.hxx 
    599589NT_import.o: $(ARBHOME)/INCLUDE/cb.h 
     590NT_import.o: $(ARBHOME)/INCLUDE/dbui.h 
    600591NT_import.o: $(ARBHOME)/INCLUDE/dupstr.h 
    601592NT_import.o: $(ARBHOME)/INCLUDE/GEN.hxx 
     
    650641NT_join.o: $(ARBHOME)/INCLUDE/aw_select.hxx 
    651642NT_join.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    652 NT_join.o: $(ARBHOME)/INCLUDE/awt.hxx 
    653 NT_join.o: $(ARBHOME)/INCLUDE/awt_item_sel_list.hxx 
    654643NT_join.o: $(ARBHOME)/INCLUDE/awt_sel_boxes.hxx 
    655644NT_join.o: $(ARBHOME)/INCLUDE/cb.h 
    656645NT_join.o: $(ARBHOME)/INCLUDE/dupstr.h 
     646NT_join.o: $(ARBHOME)/INCLUDE/item_sel_list.h 
     647NT_join.o: $(ARBHOME)/INCLUDE/items.h 
    657648NT_join.o: $(ARBHOME)/INCLUDE/smartptr.h 
    658649NT_join.o: $(ARBHOME)/INCLUDE/test_global.h 
    659650 
    660 NT_main.o: map_viewer.hxx 
    661651NT_main.o: nt_cb.hxx 
    662652NT_main.o: nt_internal.h 
     
    665655NT_main.o: $(ARBHOME)/INCLUDE/ad_t_prot.h 
    666656NT_main.o: $(ARBHOME)/INCLUDE/adGene.h 
    667 NT_main.o: $(ARBHOME)/INCLUDE/AliView.hxx 
    668 NT_main.o: $(ARBHOME)/INCLUDE/AP_sequence.hxx 
    669 NT_main.o: $(ARBHOME)/INCLUDE/AP_Tree.hxx 
    670657NT_main.o: $(ARBHOME)/INCLUDE/arb_assert.h 
    671658NT_main.o: $(ARBHOME)/INCLUDE/arb_build.h 
     
    675662NT_main.o: $(ARBHOME)/INCLUDE/arb_progress.h 
    676663NT_main.o: $(ARBHOME)/INCLUDE/arb_string.h 
    677 NT_main.o: $(ARBHOME)/INCLUDE/ARB_Tree.hxx 
    678664NT_main.o: $(ARBHOME)/INCLUDE/arb_version.h 
    679665NT_main.o: $(ARBHOME)/INCLUDE/arbdb.h 
     
    686672NT_main.o: $(ARBHOME)/INCLUDE/aw_awars.hxx 
    687673NT_main.o: $(ARBHOME)/INCLUDE/aw_base.hxx 
    688 NT_main.o: $(ARBHOME)/INCLUDE/aw_color_groups.hxx 
    689 NT_main.o: $(ARBHOME)/INCLUDE/aw_device.hxx 
    690674NT_main.o: $(ARBHOME)/INCLUDE/aw_edit.hxx 
    691675NT_main.o: $(ARBHOME)/INCLUDE/aw_file.hxx 
    692676NT_main.o: $(ARBHOME)/INCLUDE/aw_keysym.hxx 
    693677NT_main.o: $(ARBHOME)/INCLUDE/aw_msg.hxx 
    694 NT_main.o: $(ARBHOME)/INCLUDE/aw_position.hxx 
    695678NT_main.o: $(ARBHOME)/INCLUDE/aw_question.hxx 
    696679NT_main.o: $(ARBHOME)/INCLUDE/aw_root.hxx 
    697680NT_main.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    698681NT_main.o: $(ARBHOME)/INCLUDE/awt.hxx 
    699 NT_main.o: $(ARBHOME)/INCLUDE/awt_canvas.hxx 
    700682NT_main.o: $(ARBHOME)/INCLUDE/awt_macro.hxx 
    701683NT_main.o: $(ARBHOME)/INCLUDE/awti_import.hxx 
    702684NT_main.o: $(ARBHOME)/INCLUDE/cb.h 
    703 NT_main.o: $(ARBHOME)/INCLUDE/downcast.h 
    704685NT_main.o: $(ARBHOME)/INCLUDE/dupstr.h 
    705686NT_main.o: $(ARBHOME)/INCLUDE/mg_merge.hxx 
     
    707688NT_main.o: $(ARBHOME)/INCLUDE/svn_revision.h 
    708689NT_main.o: $(ARBHOME)/INCLUDE/test_global.h 
    709 NT_main.o: $(ARBHOME)/INCLUDE/TreeDisplay.hxx 
    710690 
    711691NT_sort.o: nt_cb.hxx 
     
    732712NT_sort.o: $(ARBHOME)/INCLUDE/aw_select.hxx 
    733713NT_sort.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    734 NT_sort.o: $(ARBHOME)/INCLUDE/awt.hxx 
    735 NT_sort.o: $(ARBHOME)/INCLUDE/awt_item_sel_list.hxx 
    736714NT_sort.o: $(ARBHOME)/INCLUDE/cb.h 
    737715NT_sort.o: $(ARBHOME)/INCLUDE/dupstr.h 
     716NT_sort.o: $(ARBHOME)/INCLUDE/item_sel_list.h 
     717NT_sort.o: $(ARBHOME)/INCLUDE/items.h 
    738718NT_sort.o: $(ARBHOME)/INCLUDE/smartptr.h 
    739719NT_sort.o: $(ARBHOME)/INCLUDE/test_global.h 
     
    810790NT_validManual.o: $(ARBHOME)/INCLUDE/aw_root.hxx 
    811791NT_validManual.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    812 NT_validManual.o: $(ARBHOME)/INCLUDE/awt.hxx 
    813792NT_validManual.o: $(ARBHOME)/INCLUDE/cb.h 
    814793NT_validManual.o: $(ARBHOME)/INCLUDE/dupstr.h 
     
    838817NT_validNames.o: $(ARBHOME)/INCLUDE/aw_awars.hxx 
    839818NT_validNames.o: $(ARBHOME)/INCLUDE/aw_base.hxx 
    840 NT_validNames.o: $(ARBHOME)/INCLUDE/aw_keysym.hxx 
    841819NT_validNames.o: $(ARBHOME)/INCLUDE/aw_msg.hxx 
    842 NT_validNames.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    843 NT_validNames.o: $(ARBHOME)/INCLUDE/awt.hxx 
    844820NT_validNames.o: $(ARBHOME)/INCLUDE/awt_www.hxx 
    845821NT_validNames.o: $(ARBHOME)/INCLUDE/cb.h 
  • trunk/NTREE/NT_cb.cxx

    r7184 r7801  
    118118} 
    119119 
    120 void NT_system_cb(AW_window *aww, AW_CL command, AW_CL auto_help_file) 
    121 { 
    122     char *sys = (char *)command; 
    123     if (auto_help_file) { 
    124         AW_POPUP_HELP(aww, auto_help_file); 
    125     } 
    126     GBCMC_system(GLOBAL_gb_main, sys); 
     120void NT_system_cb(AW_window *aww, AW_CL cl_command, AW_CL cl_auto_help_file) { 
     121    AW_system(aww, GLOBAL_gb_main, (const char *)cl_command, (const char *)cl_auto_help_file); 
    127122} 
    128123 
  • trunk/NTREE/NT_concatenate.cxx

    r7800 r7801  
    1313#include "nt_internal.h" 
    1414 
    15 #include <awt.hxx> 
    16 #include <awt_item_sel_list.hxx> 
     15#include <items.h> 
     16#include <item_sel_list.h> 
    1717#include <awt_sel_boxes.hxx> 
    1818#include <AW_rename.hxx> 
  • trunk/NTREE/NT_dbrepair.cxx

    r7800 r7801  
    1515#include <adGene.h> 
    1616 
    17 #include <awt.hxx>                                  // for ad_item_selector only 
     17#include <items.h> 
    1818#include <GEN.hxx> 
    1919#include <EXP.hxx> 
  • trunk/NTREE/NT_extern.cxx

    r7800 r7801  
    1212#include "nt_internal.h" 
    1313#include "ntree.hxx" 
    14 #include "ad_spec.hxx" 
    1514#include "ad_trees.hxx" 
    1615#include "ap_consensus.hxx" 
     
    3231#include <awti_export.hxx> 
    3332 
     33#include <awt.hxx> 
    3434#include <awt_macro.hxx> 
    3535#include <awt_config_manager.hxx> 
     
    3737#include <awt_sel_boxes.hxx> 
    3838#include <awt_www.hxx> 
    39 #include <awt_nds.hxx> 
     39#include <nds.h> 
     40 
     41#include <items.h> 
     42#include <db_query.h> 
     43#include <dbui.h> 
    4044 
    4145#include <aw_advice.hxx> 
     
    206210    create_primer_design_variables(awr, def, GLOBAL_gb_main); 
    207211    create_trees_var(awr, def); 
    208     NT_create_species_var(awr, def); 
     212    DBUI::NT_create_species_var(awr, def); 
    209213    create_consensus_var(awr, def); 
    210214    GDE_create_var(awr, def, GLOBAL_gb_main); 
     
    788792{ 
    789793    AWT_canvas *canvas = (AWT_canvas*)cd1; 
    790     AW_window  *aws    = NT_create_species_window(aww->get_root(), (AW_CL)canvas->gb_main); 
     794    AW_window  *aws    = DBUI::NT_create_species_window(aww->get_root(), (AW_CL)canvas->gb_main); 
    791795    aws->activate(); 
    792796    nt_mode_event(aww, canvas, (AWT_COMMAND_MODE)cd2); 
     
    991995void NT_popup_species_window(AW_window *aww, AW_CL cl_gb_main, AW_CL) { 
    992996    // used to avoid that the species info window is stored in a menu (or with a button) 
    993     NT_create_species_window(aww->get_root(), cl_gb_main)->activate(); 
     997    DBUI::NT_create_species_window(aww->get_root(), cl_gb_main)->activate(); 
    994998} 
    995999 
     
    12421246        awm->create_menu("Species", "c", AWM_ALL); 
    12431247        { 
    1244             AWMIMT("species_search", "Search and query",    "q", "sp_search.hlp", AWM_ALL, AW_POPUP,                (AW_CL)NTX_create_query_window, 0); 
     1248            AWMIMT("species_search", "Search and query",    "q", "sp_search.hlp", AWM_ALL, AW_POPUP,                (AW_CL)DBUI::NTX_create_query_window, (AW_CL)GLOBAL_gb_main); 
    12451249            AWMIMT("species_info",   "Species information", "i", "sp_info.hlp",   AWM_ALL, NT_popup_species_window, (AW_CL)GLOBAL_gb_main,         0); 
    12461250 
     
    12551259 
    12561260            awm->insert_sub_menu("Database fields admin", "f"); 
    1257             NT_spec_create_field_items(awm); 
     1261            DBUI::NT_spec_create_field_items(awm, GLOBAL_gb_main); 
    12581262            awm->close_sub_menu(); 
    12591263            NT_create_mask_submenu(awm); 
     
    17711775 
    17721776    awm->at(db_searchx, first_liney); 
    1773     awm->callback(AW_POPUP, (AW_CL)NTX_create_query_window, 0); 
     1777    awm->callback(AW_POPUP, (AW_CL)DBUI::NTX_create_query_window, (AW_CL)GLOBAL_gb_main); 
    17741778    awm->help_text("sp_search.hlp"); 
    17751779    awm->create_button("SEARCH",  "Search"); 
  • trunk/NTREE/NT_import.cxx

    r7180 r7801  
    1010 
    1111#include "nt_internal.h" 
    12 #include "ad_spec.hxx" 
    1312 
     13#include <awt.hxx> 
     14#include <dbui.h> 
    1415#include <GEN.hxx> 
    1516#include <awti_import.hxx> 
     
    2627void nt_seq_load_cb(AW_root *awr, AW_CL, AW_CL) { 
    2728    GLOBAL_gb_dest    = GLOBAL_gb_main; 
    28     AW_window *aww    = NTX_create_query_window(awr); 
    29     NT_unquery_all(); 
     29    AW_window *aww    = DBUI::NTX_create_query_window(awr, (AW_CL)GLOBAL_gb_main); 
     30    DBUI::NT_unquery_all(); 
    3031    GB_ERROR   error  = MG_simple_merge(awr); 
    3132    if (!error) error = NT_format_all_alignments(GLOBAL_gb_main); 
    32     NT_query_update_list(); 
     33    DBUI::NT_query_update_list(); 
    3334    if (!error) aww->activate(); 
    3435} 
  • trunk/NTREE/NT_join.cxx

    r7186 r7801  
    99// =============================================================== // 
    1010 
    11 #include <awt.hxx> 
    12 #include <awt_item_sel_list.hxx> 
     11#include <item_sel_list.h> 
    1312#include <awt_sel_boxes.hxx> 
    1413#include <aw_awars.hxx> 
  • trunk/NTREE/NT_main.cxx

    r7799 r7801  
    99// =============================================================== // 
    1010 
    11 #include "map_viewer.hxx" 
    1211#include "nt_internal.h" 
    1312#include "ntree.hxx" 
     
    2928#include <aw_root.hxx> 
    3029 
     30#include <arbdbt.h> 
    3131#include <adGene.h> 
    3232#include <arb_version.h> 
     
    527527 
    528528    GLOBAL_NT.awr = aw_root; 
    529     MapViewer_set_default_root(aw_root);            // set default for launch_MapViewer_cb (as long as no info-box was opened) 
    530529 
    531530    // create some early awars 
  • trunk/NTREE/NT_sort.cxx

    r7770 r7801  
    1212#include "nt_cb.hxx" 
    1313 
    14 #include <awt_item_sel_list.hxx> 
    15 #include <awt.hxx> 
     14#include <item_sel_list.h> 
    1615#include <aw_awar.hxx> 
    1716#include <arb_progress.h> 
  • trunk/NTREE/NT_validManual.cxx

    r6867 r7801  
    99// =============================================================== // 
    1010 
    11 #include <arbdbt.h> 
     11#include <aw_window.hxx> 
    1212#include <aw_awars.hxx> 
    1313#include <aw_root.hxx> 
    14 #include <awt.hxx> 
    1514#include <aw_msg.hxx> 
     15#include <arbdbt.h> 
    1616 
    1717#include <string> 
  • trunk/NTREE/NT_validNames.cxx

    r7177 r7801  
    1414#include <aw_awars.hxx> 
    1515#include <aw_msg.hxx> 
    16 #include <awt.hxx> 
    1716#include <awt_www.hxx> 
    1817 
  • trunk/NTREE/ad_ext.cxx

    r7314 r7801  
    1010 
    1111#include <db_scanner.hxx> 
    12 #include <awt.hxx> 
     12#include <items.h> 
    1313#include <awt_sel_boxes.hxx> 
    1414#include <aw_awars.hxx> 
  • trunk/NTREE/ad_fields.cxx

    r6867 r7801  
    1010 
    1111#include <arbdbt.h> 
    12 #include <awt.hxx> 
    1312 
    1413extern GBDATA *GLOBAL_gb_main; 
  • trunk/NTREE/ad_spec.cxx

    r7770 r7801  
    1010 
    1111#include "map_viewer.hxx" 
    12 #include "ad_spec.hxx" 
    1312#include "nt_internal.h" 
    1413#include "ntree.hxx" 
    1514 
    16 #include <awtc_next_neighbours.hxx> 
    17 #include <AW_rename.hxx> 
    18 #include <db_scanner.hxx> 
    19 #include <awt_item_sel_list.hxx> 
    20 #include <awtlocal.hxx> 
     15#include <dbui.h> 
     16 
    2117#include <awt_www.hxx> 
    22 #include <awt_sel_boxes.hxx> 
     18#include <awt_canvas.hxx> 
     19 
    2320#include <aw_awars.hxx> 
    24 #include <aw_detach.hxx> 
    2521#include <aw_msg.hxx> 
     22#include <aw_root.hxx> 
     23 
    2624#include <arb_progress.h> 
    27 #include <arb_strbuf.h> 
    2825#include <arb_defs.h> 
    29 #include <probe_design.hxx> 
    3026 
    3127#include <cctype> 
     
    3531 
    3632extern GBDATA *GLOBAL_gb_main; 
    37  
    38 // next neighbours of listed and selected: 
    39 #define AWAR_NN_COMPLEMENT  AWAR_NN_BASE "complement" 
    40  
    41 // next neighbours of selected only: 
    42 #define AWAR_NN_MAX_HITS  AWAR_NN_BASE "max_hits" 
    43 #define AWAR_NN_HIT_COUNT "tmp/" AWAR_NN_BASE "hit_count" 
    44  
    45 // next neighbours of listed only: 
    46 #define AWAR_NN_DEST_FIELD     AWAR_NN_BASE "dest_field" 
    47 #define AWAR_NN_WANTED_ENTRIES AWAR_NN_BASE "wanted_entries" 
    48 #define AWAR_NN_SCORED_ENTRIES AWAR_NN_BASE "scored_entries" 
    49 #define AWAR_NN_MIN_SCORE      AWAR_NN_BASE "min_score" 
    50 #define AWAR_NN_RANGE_START    AWAR_NN_BASE "range_start" 
    51 #define AWAR_NN_RANGE_END      AWAR_NN_BASE "range_end" 
    52  
    53 enum ReorderMode { 
    54     // real orders 
    55     ORDER_ALPHA, 
    56     ORDER_TYPE, 
    57     ORDER_FREQ, 
    58      
    59     // special modes 
    60     RIGHT_BEHIND_LEFT, 
    61     REVERSE_ORDER, 
    62 }; 
    63  
    64 void NT_create_species_var(AW_root *aw_root, AW_default aw_def) { 
    65     aw_root->awar_string(AWAR_SPECIES_DEST,         "",          aw_def); 
    66     aw_root->awar_string(AWAR_SPECIES_INFO,         "",          aw_def); 
    67     aw_root->awar_string(AWAR_SPECIES_KEY,          "",          aw_def); 
    68     aw_root->awar_string(AWAR_FIELD_REORDER_SOURCE, "",          aw_def); 
    69     aw_root->awar_string(AWAR_FIELD_REORDER_DEST,   "",          aw_def); 
    70     aw_root->awar_int   (AWAR_FIELD_REORDER_ORDER,  ORDER_ALPHA, aw_def); 
    71     aw_root->awar_string(AWAR_FIELD_CREATE_NAME,    "",          aw_def); 
    72     aw_root->awar_int   (AWAR_FIELD_CREATE_TYPE,    GB_STRING,   aw_def); 
    73     aw_root->awar_string(AWAR_FIELD_DELETE,         "",          aw_def); 
    74     aw_root->awar_string(AWAR_FIELD_CONVERT_SOURCE, "",          aw_def); 
    75     aw_root->awar_int   (AWAR_FIELD_CONVERT_TYPE,   GB_STRING,   aw_def); 
    76     aw_root->awar_string(AWAR_FIELD_CONVERT_NAME,   "",          aw_def); 
    77 } 
    78  
    79 static void move_species_to_extended(AW_window *aww) { 
    80     char     *source = aww->get_root()->awar(AWAR_SPECIES_NAME)->read_string(); 
    81     GB_ERROR  error  = GB_begin_transaction(GLOBAL_gb_main); 
    82  
    83     if (!error) { 
    84         GBDATA *gb_sai_data     = GBT_get_SAI_data(GLOBAL_gb_main); 
    85         if (!gb_sai_data) error = GB_await_error(); 
    86         else { 
    87             GBDATA *gb_species = GBT_find_species(GLOBAL_gb_main, source); 
    88             GBDATA *gb_dest    = GBT_find_SAI_rel_SAI_data(gb_sai_data, source); 
    89  
    90             if (gb_dest) error = GBS_global_string("SAI '%s' already exists", source); 
    91             else if (gb_species) { 
    92                 gb_dest             = GB_create_container(gb_sai_data, "extended"); 
    93                 if (!gb_dest) error = GB_await_error(); 
    94                 else { 
    95                     error = GB_copy(gb_dest, gb_species); 
    96                     if (!error) { 
    97                         error = GB_delete(gb_species); 
    98                         if (!error) aww->get_root()->awar(AWAR_SPECIES_NAME)->write_string(""); 
    99                     } 
    100                 } 
    101             } 
    102             else error = "Please select a species"; 
    103         } 
    104     } 
    105     GB_end_transaction_show_error(GLOBAL_gb_main, error, aw_message); 
    106     free(source); 
    107 } 
    10833 
    10934static const char * const SAI_COUNTED_CHARS = "COUNTED_CHARS"; 
     
    320245} 
    321246 
    322 static void species_create_cb(AW_window * aww) { 
    323     char     *dest  = aww->get_root()->awar(AWAR_SPECIES_DEST)->read_string(); 
    324     GB_ERROR  error = GB_begin_transaction(GLOBAL_gb_main); 
    325  
    326     if (!error) { 
    327         GBDATA *gb_species_data     = GB_search(GLOBAL_gb_main, "species_data", GB_CREATE_CONTAINER); 
    328         if (!gb_species_data) error = GB_await_error(); 
    329         else { 
    330             GBDATA *gb_dest = GBT_find_species_rel_species_data(gb_species_data, dest); 
    331  
    332             if (gb_dest) error = GBS_global_string("Species '%s' already exists", dest); 
    333             else { 
    334                 gb_dest             = GBT_find_or_create_species_rel_species_data(gb_species_data, dest); 
    335                 if (!gb_dest) error = GB_await_error(); 
    336                 else aww->get_root()->awar(AWAR_SPECIES_NAME)->write_string(dest); 
    337             } 
    338         } 
    339     } 
    340     GB_end_transaction_show_error(GLOBAL_gb_main, error, aw_message); 
    341     free(dest); 
    342 } 
    343  
    344 static AW_window *create_species_create_window(AW_root *root) 
    345 { 
    346     AW_window_simple *aws = new AW_window_simple; 
    347     aws->init(root, "CREATE_SPECIES", "SPECIES CREATE"); 
    348     aws->load_xfig("ad_al_si.fig"); 
    349  
    350     aws->callback((AW_CB0)AW_POPDOWN); 
    351     aws->at("close"); 
    352     aws->create_button("CLOSE", "CLOSE", "C"); 
    353  
    354     aws->at("label"); 
    355     aws->create_autosize_button(0, "Please enter the name\nof the new species"); 
    356  
    357     aws->at("input"); 
    358     aws->create_input_field(AWAR_SPECIES_DEST, 15); 
    359  
    360     aws->at("ok"); 
    361     aws->callback(species_create_cb); 
    362     aws->create_button("GO", "GO", "G"); 
    363  
    364     return (AW_window *)aws; 
    365 } 
    366  
    367 static GBDATA *expect_species_selected(AW_root *aw_root, char **give_name = 0) { 
    368     GB_transaction  ta(GLOBAL_gb_main); 
    369     char           *name       = aw_root->awar(AWAR_SPECIES_NAME)->read_string(); 
    370     GBDATA         *gb_species = GBT_find_species(GLOBAL_gb_main, name); 
    371  
    372     if (!gb_species) { 
    373         if (name && name[0]) aw_message(GBS_global_string("Species '%s' does not exist.", name)); 
    374         else aw_message("Please select a species first"); 
    375     } 
    376  
    377     if (give_name) *give_name = name; 
    378     else free(name); 
    379  
    380     return gb_species; 
    381 } 
    382  
    383 static void ad_species_copy_cb(AW_window *aww, AW_CL, AW_CL) { 
    384     AW_root *aw_root    = aww->get_root(); 
    385     char    *name; 
    386     GBDATA  *gb_species = expect_species_selected(aw_root, &name); 
    387  
    388     if (gb_species) { 
    389         GB_transaction      ta(GLOBAL_gb_main); 
    390         GBDATA             *gb_species_data = GB_get_father(gb_species); 
    391         UniqueNameDetector  und(gb_species_data); 
    392         GB_ERROR            error           = 0; 
    393         char               *copy_name       = AWTC_makeUniqueShortName(GBS_global_string("c%s", name), und); 
    394  
    395         if (!copy_name) error = GB_await_error(); 
    396         else { 
    397             GBDATA *gb_new_species = GB_create_container(gb_species_data, "species"); 
    398  
    399             if (!gb_new_species) error = GB_await_error(); 
    400             else { 
    401                 error = GB_copy(gb_new_species, gb_species); 
    402                 if (!error) { 
    403                     error = GBT_write_string(gb_new_species, "name", copy_name); 
    404                     if (!error) aw_root->awar(AWAR_SPECIES_NAME)->write_string(copy_name); // set focus 
    405                 } 
    406             } 
    407  
    408             free(copy_name); 
    409         } 
    410         if (error) { 
    411             error = ta.close(error); 
    412             aw_message(error); 
    413         } 
    414     } 
    415 } 
    416  
    417 static void ad_species_rename_cb(AW_window *aww, AW_CL, AW_CL) { 
    418     AW_root *aw_root    = aww->get_root(); 
    419     GBDATA  *gb_species = expect_species_selected(aw_root); 
    420     if (gb_species) { 
    421         GB_transaction  ta(GLOBAL_gb_main); 
    422         GBDATA         *gb_full_name  = GB_search(gb_species, "full_name", GB_STRING); 
    423         const char     *full_name     = gb_full_name ? GB_read_char_pntr(gb_full_name) : ""; 
    424         char           *new_full_name = aw_input("Enter new 'full_name' of species:", full_name); 
    425  
    426         if (new_full_name) { 
    427             GB_ERROR error = 0; 
    428  
    429             if (strcmp(full_name, new_full_name) != 0) { 
    430                 error = GB_write_string(gb_full_name, new_full_name); 
    431             } 
    432             if (!error) { 
    433                 if (aw_ask_sure("Do you want to re-create the 'name' field?")) { 
    434                     arb_progress progress("Recreating species name", 1); 
    435                     error = AWTC_recreate_name(gb_species); 
    436                     if (!error) aw_root->awar(AWAR_SPECIES_NAME)->write_string(GBT_read_name(gb_species)); // set focus 
    437                 } 
    438             } 
    439  
    440             if (error) { 
    441                 error = ta.close(error); 
    442                 aw_message(error); 
    443             } 
    444         } 
    445     } 
    446 } 
    447  
    448 static void ad_species_delete_cb(AW_window *aww, AW_CL, AW_CL) { 
    449     AW_root  *aw_root    = aww->get_root(); 
    450     char     *name; 
    451     GBDATA   *gb_species = expect_species_selected(aw_root, &name); 
    452     GB_ERROR  error      = 0; 
    453  
    454     if (!gb_species) { 
    455         error = "Please select a species first"; 
    456     } 
    457     else if (aw_ask_sure(GBS_global_string("Are you sure to delete the species '%s'?", name))) { 
    458         GB_transaction ta(GLOBAL_gb_main); 
    459         error = GB_delete(gb_species); 
    460         error = ta.close(error); 
    461         if (!error) aw_root->awar(AWAR_SPECIES_NAME)->write_string(""); 
    462     } 
    463  
    464     if (error) aw_message(error); 
    465     free(name); 
    466 } 
    467  
    468 static AW_CL    ad_global_scannerid      = 0; 
    469 static AW_root *ad_global_scannerroot    = 0; 
    470 static AW_root *ad_global_default_awroot = 0; 
    471  
    472 void MapViewer_set_default_root(AW_root *aw_root) { 
    473     ad_global_default_awroot = aw_root; 
    474 } 
    475  
    476 static void AD_map_species(AW_root *aw_root, AW_CL scannerid, AW_CL mapOrganism) 
    477 { 
    478     GB_push_transaction(GLOBAL_gb_main); 
    479     char *source = aw_root->awar((bool)mapOrganism ? AWAR_ORGANISM_NAME : AWAR_SPECIES_NAME)->read_string(); 
    480     GBDATA *gb_species = GBT_find_species(GLOBAL_gb_main, source); 
    481     if (gb_species) { 
    482         map_db_scanner(scannerid, gb_species, CHANGE_KEY_PATH); 
    483     } 
    484     GB_pop_transaction(GLOBAL_gb_main); 
    485     free(source); 
    486 } 
    487  
    488247void launch_MapViewer_cb(GBDATA *gbd, AD_MAP_VIEWER_TYPE type) { 
    489248    GB_ERROR error = GB_push_transaction(GLOBAL_gb_main); 
     
    497256        } 
    498257 
    499         if (ad_global_scannerroot) { // if we have an active info-scanner, then update its awar 
    500             ad_global_scannerroot->awar(AWAR_SPECIES_NAME)->write_string(species_name); 
    501         } 
    502         else if (ad_global_default_awroot) { // no active scanner -> write global awar 
    503             ad_global_default_awroot->awar(AWAR_SPECIES_NAME)->write_string(species_name); 
    504         } 
     258        AW_root::SINGLETON->awar(AWAR_SPECIES_NAME)->write_string(species_name); 
    505259    } 
    506260 
     
    517271} 
    518272 
    519 static long count_field_occurrance(const ad_item_selector *sel, const char *field_name) { 
    520     AWT_QUERY_RANGE RANGE = QUERY_ALL_ITEMS; 
    521     long            count = 0; 
    522  
    523     for (GBDATA *gb_container = sel->get_first_item_container(GLOBAL_gb_main, NULL, RANGE); 
    524          gb_container; 
    525          gb_container = sel->get_next_item_container(gb_container, RANGE)) 
    526     { 
    527         for (GBDATA *gb_item = sel->get_first_item(gb_container, RANGE); 
    528              gb_item; 
    529              gb_item = sel->get_next_item(gb_item, RANGE)) 
    530         { 
    531             GBDATA *gb_field = GB_entry(gb_item, field_name); 
    532             if (gb_field) ++count; 
    533         } 
    534     } 
    535     return count; 
    536 } 
    537  
    538 class KeySorter : virtual Noncopyable { 
    539     int      key_count; 
    540     GBDATA **key; 
    541  
    542     int field_count; // = key_count - container_count 
    543  
    544     bool order_changed; 
    545  
    546     // helper variables for sorting 
    547     static GB_HASH                *order_hash; 
    548     static const ad_item_selector *item_selector; 
    549     static arb_progress           *sort_progress; 
    550  
    551     bool legal_pos(int p) { return p >= 0 && p<key_count; } 
    552     bool legal_field_pos(int p) const { return p >= 0 && p<field_count; } 
    553     bool legal_field_pos(int p1, int p2) const { return legal_field_pos(p1) && legal_field_pos(p2); } 
    554  
    555     void swap(int p1, int p2) { 
    556         nt_assert(legal_pos(p1)); 
    557         nt_assert(legal_pos(p2)); 
    558  
    559         GBDATA *k = key[p1]; 
    560         key[p1]   = key[p2]; 
    561         key[p2]   = k; 
    562  
    563         order_changed = true; 
    564     } 
    565  
    566     const char *field_name(int p) const { 
    567         GBDATA *gb_key_name = GB_entry(key[p], "key_name"); 
    568         if (gb_key_name) return GB_read_char_pntr(gb_key_name); 
    569         return NULL; 
    570     } 
    571     GB_TYPES field_type(int p) const { 
    572         GBDATA *gb_key_type = GB_entry(key[p], "key_type"); 
    573         if (gb_key_type) return GB_TYPES(GB_read_int(gb_key_type)); 
    574         return GB_NONE; 
    575     } 
    576     int field_freq(int p) const { 
    577         const char *name            = field_name(p); 
    578         if (!order_hash) order_hash = GBS_create_hash(key_count, GB_IGNORE_CASE); 
    579  
    580         long freq = GBS_read_hash(order_hash, name); 
    581         if (!freq) { 
    582             freq = 1+count_field_occurrance(item_selector, name); 
    583             GBS_write_hash(order_hash, name, freq); 
    584             if (sort_progress) sort_progress->inc(); 
    585         } 
    586         return freq; 
    587     } 
    588  
    589     int compare(int p1, int p2, ReorderMode mode) { 
    590         switch (mode) { 
    591             case RIGHT_BEHIND_LEFT: 
    592             case REVERSE_ORDER:  
    593                 nt_assert(0); // illegal ReorderMode 
    594                 break; 
    595  
    596             case ORDER_TYPE:  return field_type(p2)-field_type(p1); 
    597             case ORDER_ALPHA: return strcasecmp(field_name(p1), field_name(p2)); 
    598             case ORDER_FREQ:  return field_freq(p2)-field_freq(p1); 
    599         } 
    600         return p2-p1; // keep order 
    601     } 
    602  
    603 public: 
    604     KeySorter(GBDATA *gb_key_data) { 
    605         key_count   = 0; 
    606         field_count = 0; 
    607         key         = NULL; 
    608  
    609         for (GBDATA *gb_key = GB_child(gb_key_data); gb_key; gb_key = GB_nextChild(gb_key)) { 
    610             key_count++; 
    611         } 
    612  
    613         if (key_count) { 
    614             key = (GBDATA**)malloc(key_count*sizeof(*key)); 
    615              
    616             int container_count = 0; 
    617             for (GBDATA *gb_key = GB_child(gb_key_data); gb_key; gb_key = GB_nextChild(gb_key)) { 
    618                 GBDATA   *gb_type = GB_entry(gb_key, CHANGEKEY_TYPE); 
    619                 GB_TYPES  type    = GB_TYPES(GB_read_int(gb_type)); 
    620  
    621                 if (type == GB_DB) { // move containers behind fields 
    622                     key[key_count-1-container_count++] = gb_key; 
    623                 } 
    624                 else { 
    625                     key[field_count++] = gb_key; 
    626                 } 
    627             } 
    628             nt_assert((container_count+field_count) == key_count); 
    629             reverse_order(field_count, key_count-1); // of containers 
    630         } 
    631         order_changed = false; 
    632     } 
    633     ~KeySorter() { 
    634         nt_assert(!order_changed); // order changed but not written 
    635         free(key); 
    636     } 
    637  
    638     int get_field_count() const { return field_count; } 
    639  
    640     void bubble_sort(int p1, int p2, ReorderMode mode, const ad_item_selector *selector) { 
    641         if (p1>p2) std::swap(p1, p2); 
    642         if (legal_field_pos(p1, p2)) { 
    643             if (mode == ORDER_FREQ) { 
    644                 sort_progress = new arb_progress("Calculating field frequencies", p2-p1+1); 
    645             } 
    646             item_selector = selector; 
    647             while (p1<p2) { 
    648                 bool changed = false; 
    649  
    650                 int i = p2; 
    651                 while (i>p1) { 
    652                     if (compare(i-1, i, mode)>0) { 
    653                         swap(i-1, i); 
    654                         changed = true; 
    655                     } 
    656                     --i; 
    657                 } 
    658                 if (!changed) break; 
    659                 ++p1; 
    660             } 
    661             if (order_hash) { 
    662                 GBS_free_hash(order_hash); 
    663                 order_hash = NULL; 
    664             } 
    665             if (sort_progress) { 
    666                 delete sort_progress; 
    667                 sort_progress = NULL; 
    668             } 
    669         } 
    670     } 
    671     void reverse_order(int p1, int p2) { 
    672         if (p1>p2) std::swap(p1, p2); 
    673         if (legal_field_pos(p1, p2)) while (p1<p2) swap(p1++, p2--); 
    674     } 
    675  
    676     int index_of(GBDATA *gb_key) { 
    677         int i; 
    678         for (i = 0; i<key_count; i++) { 
    679             if (gb_key == key[i]) break; 
    680         } 
    681         if (i == key_count) { 
    682             nt_assert(0); 
    683             i = -1; 
    684         } 
    685         return i; 
    686     } 
    687  
    688     void move_to(int to_move, int wanted_position) { 
    689         if (legal_field_pos(to_move, wanted_position)) { 
    690             while (to_move<wanted_position) { 
    691                 swap(to_move, to_move+1); 
    692                 to_move++; 
    693             } 
    694             while (to_move>wanted_position) { 
    695                 swap(to_move, to_move-1); 
    696                 to_move--; 
    697             } 
    698         } 
    699     } 
    700  
    701     GB_ERROR save_changes() { 
    702         GB_ERROR warning = NULL; 
    703         if (order_changed) { 
    704             if (key_count) { 
    705                 GBDATA *gb_main = GB_get_root(key[0]); 
    706                 warning         = GB_resort_data_base(gb_main, key, key_count); 
    707             } 
    708             order_changed = false; 
    709         } 
    710         return warning; 
    711     } 
    712 }; 
    713  
    714 GB_HASH                *KeySorter::order_hash    = NULL; 
    715 const ad_item_selector *KeySorter::item_selector = NULL; 
    716 arb_progress           *KeySorter::sort_progress = NULL; 
    717  
    718 static void reorder_keys(AW_window *aws, ReorderMode mode, AWT_itemfield_selection *sel_left, AWT_itemfield_selection *sel_right) { 
    719     const ad_item_selector *selector = sel_left->get_selector(); 
    720     nt_assert(selector == sel_right->get_selector()); 
    721      
    722     int left_index  = aws->get_index_of_selected_element(sel_left->get_sellist()); 
    723     int right_index = aws->get_index_of_selected_element(sel_right->get_sellist()); 
    724  
    725     GB_ERROR warning = 0; 
    726  
    727     GB_begin_transaction(GLOBAL_gb_main); 
    728  
    729     AW_root *awr            = aws->get_root(); 
    730     GBDATA  *gb_left_field  = GBT_get_changekey(GLOBAL_gb_main, awr->awar(AWAR_FIELD_REORDER_SOURCE)->read_char_pntr(), selector->change_key_path); 
    731     GBDATA  *gb_right_field = GBT_get_changekey(GLOBAL_gb_main, awr->awar(AWAR_FIELD_REORDER_DEST)->read_char_pntr(), selector->change_key_path); 
    732  
    733     if (!gb_left_field || !gb_right_field || gb_left_field == gb_right_field) { 
    734         warning = "Please select different fields in both list"; 
    735     } 
    736     else { 
    737         GBDATA    *gb_key_data = GB_search(GLOBAL_gb_main, selector->change_key_path, GB_CREATE_CONTAINER); 
    738         KeySorter  sorter(gb_key_data); 
    739  
    740         int left_key_idx  = sorter.index_of(gb_left_field); 
    741         int right_key_idx = sorter.index_of(gb_right_field); 
    742  
    743         switch (mode) { 
    744             case RIGHT_BEHIND_LEFT: 
    745                 sorter.move_to(right_key_idx, left_key_idx+(left_key_idx<right_key_idx)); 
    746                 if (right_index>left_index) { left_index++; right_index++; } // make it simple to move several consecutive keys 
    747                 break; 
    748             case REVERSE_ORDER: 
    749                 sorter.reverse_order(left_key_idx, right_key_idx); 
    750                 std::swap(left_index, right_index); 
    751                 break; 
    752             default:  
    753                 sorter.bubble_sort(left_key_idx, right_key_idx, mode, selector); 
    754                 break; 
    755         } 
    756  
    757         sorter.save_changes(); 
    758     } 
    759     GB_commit_transaction(GLOBAL_gb_main); 
    760  
    761     if (warning) { 
    762         aw_message(warning); 
    763     } 
    764     else { 
    765         aws->select_element_at_index(sel_left->get_sellist(), left_index); 
    766         aws->select_element_at_index(sel_right->get_sellist(), right_index); 
    767     } 
    768 } 
    769  
    770 static void reorder_right_behind_left(AW_window *aws, AW_CL cl_selleft, AW_CL cl_selright) { reorder_keys(aws, RIGHT_BEHIND_LEFT, (AWT_itemfield_selection*)cl_selleft, (AWT_itemfield_selection*)cl_selright); } 
    771 static void reverse_key_order        (AW_window *aws, AW_CL cl_selleft, AW_CL cl_selright) { reorder_keys(aws, REVERSE_ORDER,      (AWT_itemfield_selection*)cl_selleft, (AWT_itemfield_selection*)cl_selright); } 
    772 static void sort_keys(AW_window *aws, AW_CL cl_selleft, AW_CL cl_selright) { 
    773     ReorderMode mode = ReorderMode(aws->get_root()->awar(AWAR_FIELD_REORDER_ORDER)->read_int()); 
    774     reorder_keys(aws, mode, (AWT_itemfield_selection*)cl_selleft, (AWT_itemfield_selection*)cl_selright); 
    775 } 
    776  
    777 static void reorder_up_down(AW_window *aws, AW_CL cl_selright, AW_CL cl_dir) { 
    778     GB_begin_transaction(GLOBAL_gb_main); 
    779  
    780     int                      dir        = (int)cl_dir; 
    781     AWT_itemfield_selection *sel_right  = (AWT_itemfield_selection*)cl_selright; 
    782     const ad_item_selector  *selector   = sel_right->get_selector(); 
    783     int                      list_index = aws->get_index_of_selected_element(sel_right->get_sellist()); 
    784  
    785     const char *field_name = aws->get_root()->awar(AWAR_FIELD_REORDER_DEST)->read_char_pntr(); 
    786     GBDATA     *gb_field   = GBT_get_changekey(GLOBAL_gb_main, field_name, selector->change_key_path); 
    787     GB_ERROR    warning    = 0; 
    788  
    789     if (!gb_field) { 
    790         warning = "Please select the item to move in the right box"; 
    791     } 
    792     else { 
    793         GBDATA    *gb_key_data = GB_search(GLOBAL_gb_main, selector->change_key_path, GB_CREATE_CONTAINER); 
    794         KeySorter  sorter(gb_key_data); 
    795  
    796         int curr_index = sorter.index_of(gb_field); 
    797         int dest_index = -1; 
    798         if (abs(dir) == 1) { 
    799             dest_index = curr_index+dir; 
    800             list_index = -1; 
    801         } 
    802         else { 
    803             dest_index = dir<0 ? 0 : sorter.get_field_count()-1; 
    804         } 
    805  
    806         sorter.move_to(curr_index, dest_index); 
    807         warning = sorter.save_changes(); 
    808  
    809     } 
    810  
    811     GB_commit_transaction(GLOBAL_gb_main); 
    812     if (list_index >= 0) aws->select_element_at_index(sel_right->get_sellist(), list_index); 
    813     if (warning) aw_message(warning); 
    814 } 
    815  
    816 AW_window *NT_create_ad_list_reorder(AW_root *root, AW_CL cl_item_selector) { 
    817     const ad_item_selector *selector = (const ad_item_selector*)cl_item_selector; 
    818      
    819     static AW_window_simple *awsa[AWT_QUERY_ITEM_TYPES]; 
    820     if (!awsa[selector->type]) { 
    821         AW_window_simple *aws = new AW_window_simple; 
    822         awsa[selector->type]  = aws; 
    823  
    824         aws->init(root, "REORDER_FIELDS", "REORDER FIELDS"); 
    825         aws->load_xfig("ad_kreo.fig"); 
    826  
    827         aws->callback((AW_CB0)AW_POPDOWN); 
    828         aws->at("close"); 
    829         aws->create_button("CLOSE", "CLOSE", "C"); 
    830  
    831         const char *HELPFILE = "spaf_reorder.hlp"; 
    832         aws->callback(AW_POPUP_HELP, (AW_CL)HELPFILE); 
    833         aws->at("help"); 
    834         aws->create_button("HELP", "HELP", "H"); 
    835  
    836         AWT_itemfield_selection *sel1 = awt_create_selection_list_on_itemfields(GLOBAL_gb_main, aws, AWAR_FIELD_REORDER_SOURCE, AWT_NDS_FILTER, "source", 0, selector, 20, 10); 
    837         AWT_itemfield_selection *sel2 = awt_create_selection_list_on_itemfields(GLOBAL_gb_main, aws, AWAR_FIELD_REORDER_DEST,   AWT_NDS_FILTER, "dest",   0, selector, 20, 10); 
    838  
    839         aws->button_length(8); 
    840  
    841         aws->at("sort"); 
    842         aws->callback(sort_keys, (AW_CL)sel1, (AW_CL)sel2); 
    843         aws->help_text(HELPFILE); 
    844         aws->create_button("SORT", "Sort by"); 
    845  
    846         aws->at("sorttype"); 
    847         aws->create_option_menu(AWAR_FIELD_REORDER_ORDER); 
    848         aws->insert_option("name",      "a", ORDER_ALPHA); 
    849         aws->insert_option("type",      "t", ORDER_TYPE); 
    850         aws->insert_option("frequency", "f", ORDER_FREQ); 
    851         aws->update_option_menu(); 
    852  
    853         aws->at("leftright"); 
    854         aws->callback(reorder_right_behind_left, (AW_CL)sel1, (AW_CL)sel2); 
    855         aws->help_text(HELPFILE); 
    856         aws->create_autosize_button("MOVE_RIGHT_BEHIND_LEFT", "Move right\nbehind left"); 
    857  
    858         aws->at("reverse"); 
    859         aws->callback(reverse_key_order, (AW_CL)sel1, (AW_CL)sel2); 
    860         aws->help_text(HELPFILE); 
    861         aws->create_autosize_button("REVERSE", "Reverse"); 
    862          
    863         aws->button_length(6); 
    864         struct { 
    865             const char *tag; 
    866             const char *macro; 
    867             int         dir; 
    868         } reorder[4] = { 
    869             { "Top",    "MOVE_TOP_RIGHT",  -2 }, 
    870             { "Up",     "MOVE_UP_RIGHT",   -1 }, 
    871             { "Down",   "MOVE_DOWN_RIGHT", +1 }, 
    872             { "Bottom", "MOVE_BOT_RIGHT",  +2 }, 
    873         }; 
    874  
    875         for (int i = 0; i<4; ++i) { 
    876             aws->at(reorder[i].tag); 
    877             aws->callback(reorder_up_down, (AW_CL)sel2, reorder[i].dir); 
    878             aws->help_text(HELPFILE); 
    879             aws->create_button(reorder[i].macro, reorder[i].tag); 
    880         } 
    881     } 
    882      
    883     return awsa[selector->type]; 
    884 } 
    885  
    886 static void ad_hide_field(AW_window *aws, AW_CL cl_sel, AW_CL cl_hide) { 
    887     AWT_itemfield_selection *item_sel = (AWT_itemfield_selection*)cl_sel; 
    888     GB_ERROR                 error    = GB_begin_transaction(GLOBAL_gb_main); 
    889  
    890     if (!error) { 
    891         char                   *source    = aws->get_root()->awar(AWAR_FIELD_DELETE)->read_string(); 
    892         const ad_item_selector *selector  = item_sel->get_selector(); 
    893         GBDATA                 *gb_source = GBT_get_changekey(GLOBAL_gb_main, source, selector->change_key_path); 
    894  
    895         if (!gb_source) error = "Please select the field you want to (un)hide"; 
    896         else error            = GBT_write_int(gb_source, CHANGEKEY_HIDDEN, int(cl_hide)); 
    897  
    898         free(source); 
    899     } 
    900     GB_end_transaction_show_error(GLOBAL_gb_main, error, aw_message); 
    901     if (!error) aws->move_selection(item_sel->get_sellist(), 1); 
    902 } 
    903  
    904 static void ad_field_delete(AW_window *aws, AW_CL cl_sel) { 
    905     GB_ERROR error = GB_begin_transaction(GLOBAL_gb_main); 
    906  
    907     if (!error) { 
    908         char                    *source     = aws->get_root()->awar(AWAR_FIELD_DELETE)->read_string(); 
    909         AWT_itemfield_selection *item_sel   = (AWT_itemfield_selection*)cl_sel; 
    910         const ad_item_selector  *selector   = item_sel->get_selector(); 
    911         AW_selection_list       *sellist    = item_sel->get_sellist(); 
    912         int                      curr_index = aws->get_index_of_selected_element(sellist); 
    913         GBDATA                  *gb_source  = GBT_get_changekey(GLOBAL_gb_main, source, selector->change_key_path); 
    914  
    915         if (!gb_source) error = "Please select the field you want to delete"; 
    916         else error            = GB_delete(gb_source); 
    917  
    918         for (GBDATA *gb_item_container = selector->get_first_item_container(GLOBAL_gb_main, aws->get_root(), QUERY_ALL_ITEMS); 
    919              !error && gb_item_container; 
    920              gb_item_container = selector->get_next_item_container(gb_item_container, QUERY_ALL_ITEMS)) 
    921         { 
    922             for (GBDATA * gb_item = selector->get_first_item(gb_item_container, QUERY_ALL_ITEMS); 
    923                  !error && gb_item; 
    924                  gb_item = selector->get_next_item(gb_item, QUERY_ALL_ITEMS)) 
    925             { 
    926                 GBDATA *gbd = GB_search(gb_item, source, GB_FIND); 
    927  
    928                 if (gbd) { 
    929                     error = GB_delete(gbd); 
    930                     if (!error) { 
    931                         // item has disappeared, this selects the next one: 
    932                         aws->select_element_at_index(sellist, curr_index); 
    933                     } 
    934                 } 
    935             } 
    936         } 
    937  
    938         free(source); 
    939     } 
    940  
    941     GB_end_transaction_show_error(GLOBAL_gb_main, error, aw_message); 
    942 } 
    943  
    944  
    945 AW_window *NT_create_ad_field_delete(AW_root *root, AW_CL cl_item_selector) { 
    946     const ad_item_selector *selector = (const ad_item_selector*)cl_item_selector; 
    947  
    948     static AW_window_simple *awsa[AWT_QUERY_ITEM_TYPES]; 
    949     if (!awsa[selector->type]) { 
    950         AW_window_simple *aws = new AW_window_simple; 
    951         awsa[selector->type]  = aws; 
    952  
    953         aws->init(root, "DELETE_FIELD", "DELETE FIELD"); 
    954         aws->load_xfig("ad_delof.fig"); 
    955         aws->button_length(6); 
    956  
    957         aws->at("close"); aws->callback(AW_POPDOWN); 
    958         aws->create_button("CLOSE", "CLOSE", "C"); 
    959  
    960         aws->at("help"); aws->callback(AW_POPUP_HELP, (AW_CL)"spaf_delete.hlp"); 
    961         aws->create_button("HELP", "HELP", "H"); 
    962  
    963         AWT_itemfield_selection *item_sel = 
    964             awt_create_selection_list_on_itemfields(GLOBAL_gb_main, 
    965                                                     aws, AWAR_FIELD_DELETE, 
    966                                                     -1, 
    967                                                     "source", 0, selector, 20, 10, 
    968                                                     AWT_SF_HIDDEN); 
    969  
    970         aws->button_length(13); 
    971         aws->at("hide"); 
    972         aws->callback(ad_hide_field, (AW_CL)item_sel, (AW_CL)1); 
    973         aws->help_text("rm_field_only.hlp"); 
    974         aws->create_button("HIDE_FIELD", "Hide field", "H"); 
    975  
    976         aws->at("unhide"); 
    977         aws->callback(ad_hide_field, (AW_CL)item_sel, (AW_CL)0); 
    978         aws->help_text("rm_field_only.hlp"); 
    979         aws->create_button("UNHIDE_FIELD", "Unhide field", "U"); 
    980  
    981         aws->at("delf"); 
    982         aws->callback(ad_field_delete, (AW_CL)item_sel); 
    983         aws->help_text("rm_field_cmpt.hlp"); 
    984         aws->create_button("DELETE_FIELD", "DELETE FIELD\n(DATA DELETED)", "C"); 
    985     } 
    986      
    987     return awsa[selector->type]; 
    988 } 
    989  
    990 static void ad_field_create_cb(AW_window *aws, AW_CL cl_item_selector) 
    991 { 
    992     GB_push_transaction(GLOBAL_gb_main); 
    993     char *name = aws->get_root()->awar(AWAR_FIELD_CREATE_NAME)->read_string(); 
    994     GB_ERROR error = GB_check_key(name); 
    995     GB_ERROR error2 = GB_check_hkey(name); 
    996     if (error && !error2) { 
    997         aw_message("Warning: Your key contain a '/' character,\n" 
    998                    "    that means it is a hierarchical key"); 
    999         error = 0; 
    1000     } 
    1001  
    1002     int type = (int)aws->get_root()->awar(AWAR_FIELD_CREATE_TYPE)->read_int(); 
    1003  
    1004     const ad_item_selector *selector = (const ad_item_selector*)cl_item_selector; 
    1005     if (!error) error = GBT_add_new_changekey_to_keypath(GLOBAL_gb_main, name, type, selector->change_key_path); 
    1006     aws->hide_or_notify(error); 
    1007     free(name); 
    1008     GB_pop_transaction(GLOBAL_gb_main); 
    1009 } 
    1010  
    1011 AW_window *NT_create_ad_field_create(AW_root *root, AW_CL cl_item_selector) 
    1012 { 
    1013     const ad_item_selector *selector = (const ad_item_selector*)cl_item_selector; 
    1014  
    1015     static AW_window_simple *awsa[AWT_QUERY_ITEM_TYPES]; 
    1016     if (awsa[selector->type]) return (AW_window *)awsa[selector->type]; 
    1017  
    1018     AW_window_simple *aws = new AW_window_simple; 
    1019     awsa[selector->type]  = aws; 
    1020  
    1021     aws->init(root, "CREATE_FIELD", "CREATE A NEW FIELD"); 
    1022     aws->load_xfig("ad_fcrea.fig"); 
    1023  
    1024     aws->callback((AW_CB0)AW_POPDOWN); 
    1025     aws->at("close"); 
    1026     aws->create_button("CLOSE", "CLOSE", "C"); 
    1027  
    1028     aws->at("input"); 
    1029     aws->label("FIELD NAME"); 
    1030     aws->create_input_field(AWAR_FIELD_CREATE_NAME, 15); 
    1031  
    1032     aws->at("type"); 
    1033     aws->create_toggle_field(AWAR_FIELD_CREATE_TYPE, "FIELD TYPE", "F"); 
    1034     aws->insert_toggle("Ascii Text",        "S", (int)GB_STRING); 
    1035     aws->insert_toggle("Link",              "L", (int)GB_LINK); 
    1036     aws->insert_toggle("Rounded Numerical", "N", (int)GB_INT); 
    1037     aws->insert_toggle("Numerical",         "R", (int)GB_FLOAT); 
    1038     aws->insert_toggle("MASK = 01 Text",    "0", (int)GB_BITS); 
    1039     aws->update_toggle_field(); 
    1040  
    1041     aws->at("ok"); 
    1042     aws->callback(ad_field_create_cb, cl_item_selector); 
    1043     aws->create_button("CREATE", "CREATE", "C"); 
    1044  
    1045     return (AW_window *)aws; 
    1046 } 
    1047  
    1048 #if defined(WARN_TODO) 
    1049 #warning GBT_convert_changekey currently only works for species fields, make it work with genes/exp/... as well (use selector) 
    1050 #endif 
    1051  
    1052 static void ad_field_convert_commit_cb(AW_window *aws, AW_CL /*cl_item_selector*/) { 
    1053     // const ad_item_selector *selector = (const ad_item_selector*) cl_item_selector; 
    1054     AW_root *root = aws->get_root(); 
    1055     GB_ERROR error = NULL; 
    1056  
    1057     GB_push_transaction(GLOBAL_gb_main); 
    1058     error = GBT_convert_changekey(GLOBAL_gb_main, 
    1059                                   root->awar(AWAR_FIELD_CONVERT_SOURCE)->read_string(), 
    1060                                   (GB_TYPES)root->awar(AWAR_FIELD_CONVERT_TYPE)->read_int()); 
    1061  
    1062     GB_end_transaction_show_error(GLOBAL_gb_main, error, aw_message); 
    1063 } 
    1064  
    1065 static void ad_field_convert_update_typesel_cb(AW_window *aws, AW_CL cl_item_selector) { 
    1066     const ad_item_selector *selector = (const ad_item_selector*) cl_item_selector; 
    1067     AW_root *root = aws->get_root(); 
    1068  
    1069     GB_push_transaction(GLOBAL_gb_main); 
    1070     int type = GBT_get_type_of_changekey( 
    1071         GLOBAL_gb_main, 
    1072         root->awar(AWAR_FIELD_CONVERT_SOURCE)->read_string(), 
    1073         selector->change_key_path); 
    1074     GB_pop_transaction(GLOBAL_gb_main); 
    1075  
    1076     root->awar(AWAR_FIELD_CONVERT_TYPE)->write_int(type); 
    1077 } 
    1078  
    1079 AW_window *NT_create_ad_field_convert(AW_root *root, AW_CL cl_item_selector) { 
    1080     const ad_item_selector *selector = (const ad_item_selector*) cl_item_selector; 
    1081  
    1082     static AW_window_simple *awsa[AWT_QUERY_ITEM_TYPES]; 
    1083     if (awsa[selector->type]) return (AW_window *)awsa[selector->type]; 
    1084  
    1085     AW_window_simple *aws = new AW_window_simple; 
    1086     awsa[selector->type]  = aws; 
    1087  
    1088     aws->init(root, "CONVERT_FIELD", "CONVERT FIELDS"); 
    1089     aws->load_xfig("ad_conv.fig"); 
    1090  
    1091     aws->at("close"); 
    1092     aws->callback((AW_CB0)AW_POPDOWN); 
    1093     aws->create_button("CLOSE", "CLOSE", "C"); 
    1094  
    1095     aws->at("help"); 
    1096     aws->callback(AW_POPUP_HELP, (AW_CL)"spaf_convert.hlp"); 
    1097     aws->create_button("HELP", "HELP", "H"); 
    1098  
    1099     aws->callback(ad_field_convert_update_typesel_cb, cl_item_selector); 
    1100     awt_create_selection_list_on_itemfields(GLOBAL_gb_main, 
    1101                                             aws, 
    1102                                             AWAR_FIELD_CONVERT_SOURCE, // AWAR containing selection 
    1103                                             -1,     // type filter 
    1104                                             "source", // selector xfig position 
    1105                                             0,      // rescan button xfig position 
    1106                                             selector, 
    1107                                             40, 20, // selector w,h 
    1108                                             AWT_SF_HIDDEN); 
    1109  
    1110     aws->at("typesel"); 
    1111     aws->create_toggle_field(AWAR_FIELD_CONVERT_TYPE, NULL, "F"); 
    1112     aws->insert_toggle("Ascii Text",        "S", (int)GB_STRING); 
    1113     aws->insert_toggle("Link",              "L", (int)GB_LINK); 
    1114     aws->insert_toggle("Rounded Numerical", "N", (int)GB_INT); 
    1115     aws->insert_toggle("Numerical",         "R", (int)GB_FLOAT); 
    1116     aws->insert_toggle("MASK = 01 Text",    "0", (int)GB_BITS); 
    1117     aws->update_toggle_field(); 
    1118  
    1119     aws->at("convert"); 
    1120     aws->callback(ad_field_convert_commit_cb, cl_item_selector); 
    1121     aws->create_button("CONVERT", "CONVERT", "T"); 
    1122  
    1123     return (AW_window*)aws; 
    1124 } 
    1125  
    1126 void NT_spec_create_field_items(AW_window *aws) { 
    1127     aws->insert_menu_topic("spec_reorder_fields", "Reorder fields ...",     "R", "spaf_reorder.hlp", AWM_ALL, AW_POPUP, (AW_CL)NT_create_ad_list_reorder, (AW_CL)&AWT_species_selector); 
    1128     aws->insert_menu_topic("spec_delete_field",   "Delete/Hide fields ...", "D", "spaf_delete.hlp",  AWM_EXP, AW_POPUP, (AW_CL)NT_create_ad_field_delete, (AW_CL)&AWT_species_selector); 
    1129     aws->insert_menu_topic("spec_create_field",   "Create fields ...",      "C", "spaf_create.hlp",  AWM_ALL, AW_POPUP, (AW_CL)NT_create_ad_field_create, (AW_CL)&AWT_species_selector); 
    1130     aws->insert_menu_topic("spec_convert_field",  "Convert fields ...",     "t", "spaf_convert.hlp", AWM_EXP, AW_POPUP, (AW_CL)NT_create_ad_field_convert, (AW_CL)&AWT_species_selector); 
    1131     aws->insert_separator(); 
    1132     aws->insert_menu_topic("spec_unhide_fields", "Show all hidden fields", "S", "scandb.hlp", AWM_ALL, (AW_CB)awt_selection_list_unhide_all_cb, (AW_CL)GLOBAL_gb_main, AWT_NDS_FILTER); 
    1133     aws->insert_separator(); 
    1134     aws->insert_menu_topic("spec_scan_unknown_fields", "Scan unknown fields",   "u", "scandb.hlp", AWM_ALL, (AW_CB)awt_selection_list_scan_unknown_cb,  (AW_CL)GLOBAL_gb_main, AWT_NDS_FILTER); 
    1135     aws->insert_menu_topic("spec_del_unused_fields",   "Forget unused fields",  "e", "scandb.hlp", AWM_ALL, (AW_CB)awt_selection_list_delete_unused_cb, (AW_CL)GLOBAL_gb_main, AWT_NDS_FILTER); 
    1136     aws->insert_menu_topic("spec_refresh_fields",      "Refresh fields (both)", "f", "scandb.hlp", AWM_ALL, (AW_CB)awt_selection_list_update_cb,        (AW_CL)GLOBAL_gb_main, AWT_NDS_FILTER); 
    1137 } 
    1138  
    1139 inline int get_and_fix_range_from_awar(AW_awar *awar) { 
    1140     const char *input = awar->read_char_pntr(); 
    1141     int         bpos = atoi(input); 
    1142     int         ipos; 
    1143  
    1144     if (bpos>0) { 
    1145         awar->write_string(GBS_global_string("%i", bpos)); 
    1146         ipos = bio2info(bpos); 
    1147     } 
    1148     else { 
    1149         ipos = -1; 
    1150         awar->write_string(""); 
    1151     } 
    1152     return ipos; 
    1153 } 
    1154  
    1155 static TargetRange get_nn_range_from_awars(AW_root *aw_root) { 
    1156     int start = get_and_fix_range_from_awar(aw_root->awar(AWAR_NN_RANGE_START)); 
    1157     int end   = get_and_fix_range_from_awar(aw_root->awar(AWAR_NN_RANGE_END)); 
    1158  
    1159     return TargetRange(start, end); 
    1160 } 
    1161  
    1162 inline char *read_sequence_region(GBDATA *gb_data, const TargetRange& range) { 
    1163     return range.dup_corresponding_part(GB_read_char_pntr(gb_data), GB_read_count(gb_data)); 
    1164 } 
    1165  
    1166 static void awtc_nn_search_all_listed(AW_window *aww, AW_CL _cbs) { 
    1167     DbQuery *cbs = (DbQuery *)_cbs; 
    1168  
    1169     nt_assert(cbs->selector->type == AWT_QUERY_ITEM_SPECIES); 
    1170  
    1171     GB_begin_transaction(GLOBAL_gb_main); 
    1172  
    1173     AW_root *aw_root    = aww->get_root(); 
    1174     char    *dest_field = aw_root->awar(AWAR_NN_DEST_FIELD)->read_string(); 
    1175  
    1176     GB_ERROR error     = 0; 
    1177     GB_TYPES dest_type = GBT_get_type_of_changekey(GLOBAL_gb_main, dest_field, CHANGE_KEY_PATH); 
    1178     if (!dest_type) { 
    1179         error = GB_export_error("Please select a valid field"); 
    1180     } 
    1181  
    1182     if (strcmp(dest_field, "name")==0) { 
    1183         int answer = aw_question("CAUTION! This will destroy all name-fields of the listed species.\n", 
    1184                                  "Continue and destroy all name-fields,Abort"); 
    1185  
    1186         if (answer==1) { 
    1187             error = GB_export_error("Aborted by user"); 
    1188         } 
    1189     } 
    1190  
    1191     long         max = awt_count_queried_items(cbs, QUERY_ALL_ITEMS); 
    1192     arb_progress progress("Searching next neighbours", max); 
    1193     progress.auto_subtitles("Species"); 
    1194  
    1195     int            pts            = aw_root->awar(AWAR_PROBE_ADMIN_PT_SERVER)->read_int(); 
    1196     char          *ali_name       = aw_root->awar(AWAR_DEFAULT_ALIGNMENT)->read_string(); 
    1197     int            oligo_len      = aw_root->awar(AWAR_NN_OLIGO_LEN)->read_int(); 
    1198     int            mismatches     = aw_root->awar(AWAR_NN_MISMATCHES)->read_int(); 
    1199     bool           fast_mode      = aw_root->awar(AWAR_NN_FAST_MODE)->read_int(); 
    1200     FF_complement  compl_mode     = static_cast<FF_complement>(aw_root->awar(AWAR_NN_COMPLEMENT)->read_int()); 
    1201     bool           rel_matches    = aw_root->awar(AWAR_NN_REL_MATCHES)->read_int(); 
    1202     int            wanted_entries = aw_root->awar(AWAR_NN_WANTED_ENTRIES)->read_int(); 
    1203     bool           scored_entries = aw_root->awar(AWAR_NN_SCORED_ENTRIES)->read_int(); 
    1204     int            min_score      = aw_root->awar(AWAR_NN_MIN_SCORE)->read_int(); 
    1205  
    1206     TargetRange org_range = get_nn_range_from_awars(aw_root); 
    1207  
    1208     for (GBDATA *gb_species = GBT_first_species(GLOBAL_gb_main); 
    1209          !error && gb_species; 
    1210          gb_species = GBT_next_species(gb_species)) 
    1211     { 
    1212         if (!IS_QUERIED(gb_species, cbs)) continue; 
    1213  
    1214         GBDATA *gb_data = GBT_read_sequence(gb_species, ali_name); 
    1215         if (gb_data) { 
    1216             TargetRange      range    = org_range; // modified by read_sequence_region 
    1217             char            *sequence = read_sequence_region(gb_data, range); 
    1218             PT_FamilyFinder  ff(GLOBAL_gb_main, pts, oligo_len, mismatches, fast_mode, rel_matches); 
    1219  
    1220             ff.restrict_2_region(range); 
    1221  
    1222             error = ff.searchFamily(sequence, compl_mode, wanted_entries); 
    1223             if (!error) { 
    1224                 const FamilyList *fm = ff.getFamilyList(); 
    1225  
    1226                 GBS_strstruct *value = NULL; 
    1227                 while (fm) { 
    1228                     const char *thisValue = 0; 
    1229                     if (rel_matches) { 
    1230                         if ((fm->rel_matches*100) > min_score) { 
    1231                             thisValue = scored_entries 
    1232                                 ? GBS_global_string("%.1f%%:%s", fm->rel_matches*100, fm->name) 
    1233                                 : fm->name; 
    1234                         } 
    1235                     } 
    1236                     else { 
    1237                         if (fm->matches > min_score) { 
    1238                             thisValue = scored_entries 
    1239                                 ? GBS_global_string("%li:%s", fm->matches, fm->name) 
    1240                                 : fm->name; 
    1241                         } 
    1242                     } 
    1243  
    1244                     if (thisValue) { 
    1245                         if (value == NULL) { // first entry 
    1246                             value = GBS_stropen(1000); 
    1247                         } 
    1248                         else { 
    1249                             GBS_chrcat(value, ';'); 
    1250                         } 
    1251                         GBS_strcat(value, thisValue); 
    1252                     } 
    1253  
    1254                     fm = fm->next; 
    1255                 } 
    1256  
    1257                 if (value) { 
    1258                     GBDATA *gb_dest = GB_search(gb_species, dest_field, dest_type); 
    1259  
    1260                     error = GB_write_as_string(gb_dest, GBS_mempntr(value)); 
    1261                     GBS_strforget(value); 
    1262                 } 
    1263                 else { 
    1264                     GBDATA *gb_dest = GB_search(gb_species, dest_field, GB_FIND); 
    1265                     if (gb_dest) error = GB_delete(gb_dest); 
    1266                 } 
    1267             } 
    1268             free(sequence); 
    1269         } 
    1270         progress.inc_and_check_user_abort(error); 
    1271     } 
    1272     GB_end_transaction_show_error(GLOBAL_gb_main, error, aw_message); 
    1273     free(dest_field); 
    1274     free(ali_name); 
    1275 } 
    1276  
    1277 static void awtc_nn_search(AW_window *aww, AW_CL id) { 
    1278     AW_root     *aw_root  = aww->get_root(); 
    1279     GB_ERROR     error    = 0; 
    1280     TargetRange  range    = get_nn_range_from_awars(aw_root); 
    1281     char        *sequence = 0; 
    1282     { 
    1283         GB_transaction ta(GLOBAL_gb_main); 
    1284  
    1285         char   *sel_species = aw_root->awar(AWAR_SPECIES_NAME)->read_string(); 
    1286         GBDATA *gb_species  = GBT_find_species(GLOBAL_gb_main, sel_species); 
    1287  
    1288         if (!gb_species) { 
    1289             error = "Select a species first"; 
    1290         } 
    1291         else { 
    1292             char   *ali_name = aw_root->awar(AWAR_DEFAULT_ALIGNMENT)->read_string(); 
    1293             GBDATA *gb_data  = GBT_read_sequence(gb_species, ali_name); 
    1294  
    1295             if (gb_data) { 
    1296                 sequence = read_sequence_region(gb_data, range); 
    1297             } 
    1298             else { 
    1299                 error = GBS_global_string("Species '%s' has no sequence '%s'", sel_species, ali_name); 
    1300             } 
    1301             free(ali_name); 
    1302         } 
    1303         free(sel_species); 
    1304     } 
    1305  
    1306     int  pts         = aw_root->awar(AWAR_PROBE_ADMIN_PT_SERVER)->read_int(); 
    1307     int  oligo_len   = aw_root->awar(AWAR_NN_OLIGO_LEN)->read_int(); 
    1308     int  mismatches  = aw_root->awar(AWAR_NN_MISMATCHES)->read_int(); 
    1309     bool fast_mode   = aw_root->awar(AWAR_NN_FAST_MODE)->read_int(); 
    1310     bool rel_matches = aw_root->awar(AWAR_NN_REL_MATCHES)->read_int(); 
    1311  
    1312  
    1313     PT_FamilyFinder ff(GLOBAL_gb_main, pts, oligo_len, mismatches, fast_mode, rel_matches); 
    1314  
    1315     ff.restrict_2_region(range); 
    1316  
    1317     int max_hits = 0; // max wanted hits 
    1318  
    1319     if (!error) { 
    1320         FF_complement compl_mode = static_cast<FF_complement>(aw_root->awar(AWAR_NN_COMPLEMENT)->read_int()); 
    1321         max_hits                 = aw_root->awar(AWAR_NN_MAX_HITS)->read_int(); 
    1322  
    1323         error = ff.searchFamily(sequence, compl_mode, max_hits); 
    1324     } 
    1325  
    1326     // update result list 
    1327     { 
    1328         AW_selection_list* sel = (AW_selection_list *)id; 
    1329         aww->clear_selection_list(sel); 
    1330  
    1331         int hits = 0; 
    1332         if (error) { 
    1333             aw_message(error); 
    1334             aww->insert_default_selection(sel, "<Error>", ""); 
    1335         } 
    1336         else { 
    1337             int count    = 1; 
    1338             int numWidth = log(max_hits)/log(10)+1; 
    1339  
    1340             for (const FamilyList *fm = ff.getFamilyList(); fm; fm = fm->next) { 
    1341                 const char *dis; 
    1342                 if (rel_matches) { 
    1343                     dis = GBS_global_string("#%0*i %-12s Rel.hits: %5.1f%%", numWidth, count, fm->name, fm->rel_matches*100); 
    1344                 } 
    1345                 else { 
    1346                     dis = GBS_global_string("#%0*i %-12s Hits: %4li", numWidth, count, fm->name, fm->matches); 
    1347                 } 
    1348  
    1349                 aww->insert_selection(sel, dis, fm->name); 
    1350                 count++; 
    1351             } 
    1352  
    1353             aww->insert_default_selection(sel, ff.hits_were_truncated() ? "<List truncated>" : "<No more hits>", ""); 
    1354             hits = ff.getRealHits(); 
    1355         } 
    1356         aw_root->awar(AWAR_NN_HIT_COUNT)->write_int(hits); 
    1357         aww->update_selection_list(sel); 
    1358     } 
    1359  
    1360     free(sequence); 
    1361 } 
    1362  
    1363 static void awtc_move_hits(AW_window *aww, AW_CL id, AW_CL cbs) { 
    1364     AW_root *aw_root         = aww->get_root(); 
    1365     char    *current_species = aw_root->awar(AWAR_SPECIES_NAME)->read_string(); 
    1366  
    1367     if (!current_species) current_species = strdup("<unknown>"); 
    1368  
    1369     char *hit_description = GBS_global_string_copy("<neighbour of %s: %%s>", current_species); 
    1370  
    1371     awt_copy_selection_list_2_queried_species((DbQuery *)cbs, (AW_selection_list *)id, hit_description); 
    1372  
    1373     free(hit_description); 
    1374     free(current_species); 
    1375 } 
    1376  
    1377 static void create_next_neighbours_vars(AW_root *aw_root) { 
    1378     static bool created = false; 
    1379  
    1380     if (!created) { 
    1381         aw_root->awar_int(AWAR_PROBE_ADMIN_PT_SERVER); 
    1382         aw_root->awar_int(AWAR_NN_COMPLEMENT,  FF_FORWARD); 
    1383  
    1384         aw_root->awar_int(AWAR_NN_MAX_HITS,  50); 
    1385         aw_root->awar_int(AWAR_NN_HIT_COUNT, 0); 
    1386  
    1387         aw_root->awar_string(AWAR_NN_DEST_FIELD, "tmp"); 
    1388         aw_root->awar_int(AWAR_NN_WANTED_ENTRIES, 5); 
    1389         aw_root->awar_int(AWAR_NN_SCORED_ENTRIES, 1); 
    1390         aw_root->awar_int(AWAR_NN_MIN_SCORE,      80); 
    1391  
    1392         aw_root->awar_string(AWAR_NN_RANGE_START, ""); 
    1393         aw_root->awar_string(AWAR_NN_RANGE_END,   ""); 
    1394  
    1395         AWTC_create_common_next_neighbour_vars(aw_root); 
    1396  
    1397         created = true; 
    1398     } 
    1399 } 
    1400  
    1401 static void create_common_next_neighbour_fields(AW_window *aws) { 
    1402     aws->at("pt_server"); 
    1403     awt_create_selection_list_on_pt_servers(aws, AWAR_PROBE_ADMIN_PT_SERVER, true); 
    1404  
    1405     AWTC_create_common_next_neighbour_fields(aws); 
    1406  
    1407     aws->auto_space(5, 5); 
    1408      
    1409     aws->at("range"); 
    1410     aws->create_input_field(AWAR_NN_RANGE_START, 6); 
    1411     aws->create_input_field(AWAR_NN_RANGE_END,   6); 
    1412      
    1413     aws->at("compl"); 
    1414     aws->create_option_menu(AWAR_NN_COMPLEMENT, 0, 0); 
    1415     aws->insert_default_option("forward",            "", FF_FORWARD); 
    1416     aws->insert_option        ("reverse",            "", FF_REVERSE); 
    1417     aws->insert_option        ("complement",         "", FF_COMPLEMENT); 
    1418     aws->insert_option        ("reverse-complement", "", FF_REVERSE_COMPLEMENT); 
    1419     aws->insert_option        ("fwd + rev-compl",    "", FF_FORWARD|FF_REVERSE_COMPLEMENT); 
    1420     aws->insert_option        ("rev + compl",        "", FF_REVERSE|FF_COMPLEMENT); 
    1421     aws->insert_option        ("any",                "", FF_FORWARD|FF_REVERSE|FF_COMPLEMENT|FF_REVERSE_COMPLEMENT); 
    1422     aws->update_option_menu(); 
    1423 } 
    1424  
    1425 static AW_window *ad_spec_next_neighbours_listed_create(AW_root *aw_root, AW_CL cbs) { 
    1426     static AW_window_simple *aws = 0; 
    1427     if (!aws) { 
    1428         create_next_neighbours_vars(aw_root); 
    1429  
    1430         aws = new AW_window_simple; 
    1431         aws->init(aw_root, "SEARCH_NEXT_RELATIVES_OF_LISTED", "Search Next Neighbours of Listed"); 
    1432         aws->load_xfig("ad_spec_nnm.fig"); 
    1433  
    1434         aws->at("close"); 
    1435         aws->callback((AW_CB0)AW_POPDOWN); 
    1436         aws->create_button("CLOSE", "CLOSE", "C"); 
    1437  
    1438         aws->at("help"); 
    1439         aws->callback(AW_POPUP_HELP, (AW_CL)"next_neighbours_listed.hlp"); 
    1440         aws->create_button("HELP", "HELP", "H"); 
    1441  
    1442         create_common_next_neighbour_fields(aws); 
    1443  
    1444         aws->at("entries"); 
    1445         aws->create_input_field(AWAR_NN_WANTED_ENTRIES, 3); 
    1446  
    1447         aws->at("add_score"); 
    1448         aws->create_toggle(AWAR_NN_SCORED_ENTRIES); 
    1449  
    1450         aws->at("min_score"); 
    1451         aws->create_input_field(AWAR_NN_MIN_SCORE, 5); 
    1452  
    1453         aws->at("field"); 
    1454         awt_create_selection_list_on_itemfields(GLOBAL_gb_main, aws, AWAR_NN_DEST_FIELD, 
    1455                                                 (1<<GB_INT) | (1<<GB_STRING), "field", 0, 
    1456                                                 &AWT_species_selector, 20, 10); 
    1457  
    1458         aws->at("go"); 
    1459         aws->callback(awtc_nn_search_all_listed, cbs); 
    1460         aws->create_button("WRITE_FIELDS", "Write to field"); 
    1461     } 
    1462     return aws; 
    1463 } 
    1464  
    1465 static AW_window *ad_spec_next_neighbours_create(AW_root *aw_root, AW_CL cbs) { 
    1466     static AW_window_simple *aws = 0; 
    1467     if (!aws) { 
    1468         create_next_neighbours_vars(aw_root); 
    1469  
    1470         aws = new AW_window_simple; 
    1471         aws->init(aw_root, "SEARCH_NEXT_RELATIVE_OF_SELECTED", "Search Next Neighbours"); 
    1472         aws->load_xfig("ad_spec_nn.fig"); 
    1473  
    1474         aws->at("close"); 
    1475         aws->callback((AW_CB0)AW_POPDOWN); 
    1476         aws->create_button("CLOSE", "CLOSE", "C"); 
    1477  
    1478         aws->at("help"); 
    1479         aws->callback(AW_POPUP_HELP, (AW_CL)"next_neighbours.hlp"); 
    1480         aws->create_button("HELP", "HELP", "H"); 
    1481  
    1482         create_common_next_neighbour_fields(aws); 
    1483  
    1484         aws->at("results"); 
    1485         aws->create_input_field(AWAR_NN_MAX_HITS, 3); 
    1486  
    1487         aws->at("hit_count"); 
    1488         aws->create_button(0, AWAR_NN_HIT_COUNT, 0, "+"); 
    1489  
    1490         aws->at("hits"); 
    1491         AW_selection_list *id = aws->create_selection_list(AWAR_SPECIES_NAME); 
    1492         aws->insert_default_selection(id, "No hits found", ""); 
    1493         aws->update_selection_list(id); 
    1494  
    1495         aws->at("go"); 
    1496         aws->callback(awtc_nn_search, (AW_CL)id); 
    1497         aws->create_button("SEARCH", "SEARCH"); 
    1498  
    1499         aws->at("move"); 
    1500         aws->callback(awtc_move_hits, (AW_CL)id, cbs); 
    1501         aws->create_button("MOVE_TO_HITLIST", "MOVE TO HITLIST"); 
    1502  
    1503     } 
    1504     return aws; 
    1505 } 
    1506  
    1507 // ----------------------------------------------------------------------------------------------------------------- 
    1508 //      void NT_detach_information_window(AW_window *aww, AW_CL cl_pointer_to_aww, AW_CL cl_Awar_Callback_Info) 
    1509 // ----------------------------------------------------------------------------------------------------------------- 
    1510  
    1511 void NT_detach_information_window(AW_window *aww, AW_CL cl_pointer_to_aww, AW_CL cl_AW_detach_information) { 
    1512     AW_window **aww_pointer = (AW_window**)cl_pointer_to_aww; 
    1513  
    1514     AW_detach_information *di           = (AW_detach_information*)cl_AW_detach_information; 
    1515     Awar_Callback_Info    *cb_info      = di->get_cb_info(); 
    1516     AW_root               *awr          = cb_info->get_root(); 
    1517     char                  *curr_species = awr->awar(cb_info->get_org_awar_name())->read_string(); 
    1518  
    1519     if (*aww_pointer == aww) {  // first click on detach-button 
    1520         // create unique awar : 
    1521         static int detach_counter = 0; 
    1522         char       new_awar[100]; 
    1523         sprintf(new_awar, "tmp/DETACHED_INFO_%i", detach_counter++); 
    1524         awr->awar_string(new_awar, "", AW_ROOT_DEFAULT); 
    1525  
    1526         cb_info->remap(new_awar); // remap the callback from old awar to new unique awar 
    1527         aww->update_label(di->get_detach_button(), "GET"); 
    1528  
    1529         *aww_pointer = 0;       // caller window will be recreated on next open after clearing this pointer 
    1530         // [Note : the aww_pointer points to the static window pointer] 
    1531     } 
    1532  
    1533     awr->awar(cb_info->get_awar_name())->write_string(curr_species); 
    1534     aww->set_window_title(GBS_global_string("%s INFORMATION", curr_species)); 
    1535     free(curr_species); 
    1536 } 
    1537  
    1538 static AW_window *create_speciesOrganismWindow(AW_root *aw_root, GBDATA *gb_main, bool organismWindow) { 
    1539     int windowIdx = (int)organismWindow; 
    1540  
    1541     static AW_window_simple_menu *AWS[2] = { 0, 0 }; 
    1542     if (!AWS[windowIdx]) { 
    1543         AW_window_simple_menu *& aws = AWS[windowIdx]; 
    1544  
    1545         aws = new AW_window_simple_menu; 
    1546         if (organismWindow) aws->init(aw_root, "ORGANISM_INFORMATION", "ORGANISM INFORMATION"); 
    1547         else                aws->init(aw_root, "SPECIES_INFORMATION", "SPECIES INFORMATION"); 
    1548         aws->load_xfig("ad_spec.fig"); 
    1549  
    1550         aws->button_length(8); 
    1551  
    1552         aws->at("close"); 
    1553         aws->callback((AW_CB0)AW_POPDOWN); 
    1554         aws->create_button("CLOSE", "CLOSE", "C"); 
    1555  
    1556         aws->at("search"); 
    1557         aws->callback(AW_POPUP, (AW_CL)NTX_create_query_window, 0); 
    1558         aws->create_button("SEARCH", "SEARCH", "S"); 
    1559  
    1560         aws->at("help"); 
    1561         aws->callback(AW_POPUP_HELP, (AW_CL)"sp_info.hlp"); 
    1562         aws->create_button("HELP", "HELP", "H"); 
    1563  
    1564         AW_CL scannerid = create_db_scanner(gb_main, aws, "box", 0, "field", "enable", DB_VIEWER, 0, "mark", AWT_NDS_FILTER, 
    1565                                             organismWindow ? &AWT_organism_selector : &AWT_species_selector); 
    1566         ad_global_scannerid = scannerid; 
    1567         ad_global_scannerroot = aws->get_root(); 
    1568  
    1569         if (organismWindow) aws->create_menu("ORGANISM",    "O", AWM_ALL); 
    1570         else                aws->create_menu("SPECIES",     "S", AWM_ALL); 
    1571  
    1572         aws->insert_menu_topic("species_delete",        "Delete",         "D", "spa_delete.hlp",  AWM_ALL, ad_species_delete_cb,            0,                                   0); 
    1573         aws->insert_menu_topic("species_rename",        "Rename",         "R", "spa_rename.hlp",  AWM_ALL, ad_species_rename_cb,            0,                                   0); 
    1574         aws->insert_menu_topic("species_copy",          "Copy",           "y", "spa_copy.hlp",    AWM_ALL, ad_species_copy_cb,              0,                                   0); 
    1575         aws->insert_menu_topic("species_create",        "Create",         "C", "spa_create.hlp",  AWM_ALL, AW_POPUP,                        (AW_CL)create_species_create_window, 0); 
    1576         aws->insert_menu_topic("species_convert_2_sai", "Convert to SAI", "S", "sp_sp_2_ext.hlp", AWM_ALL, (AW_CB)move_species_to_extended, 0,                                   0); 
    1577         aws->insert_separator(); 
    1578  
    1579         aws->create_menu("FIELDS", "F", AWM_ALL); 
    1580         NT_spec_create_field_items(aws); 
    1581  
    1582         { 
    1583             const char         *awar_name = (bool)organismWindow ? AWAR_ORGANISM_NAME : AWAR_SPECIES_NAME; 
    1584             AW_root            *awr       = aws->get_root(); 
    1585             Awar_Callback_Info *cb_info   = new Awar_Callback_Info(awr, awar_name, AD_map_species, (AW_CL)scannerid, (AW_CL)organismWindow); // do not delete! 
    1586             cb_info->add_callback(); 
    1587  
    1588             AW_detach_information *detach_info = new AW_detach_information(cb_info); // do not delete! 
    1589  
    1590             aws->at("detach"); 
    1591             aws->callback(NT_detach_information_window, (AW_CL)&aws, (AW_CL)detach_info); 
    1592             aws->create_button("DETACH", "DETACH", "D"); 
    1593  
    1594             detach_info->set_detach_button(aws->get_last_widget()); 
    1595         } 
    1596  
    1597         aws->show(); 
    1598         AD_map_species(aws->get_root(), scannerid, (AW_CL)organismWindow); 
    1599     } 
    1600     return AWS[windowIdx]; // already created (and not detached) 
    1601 } 
    1602  
    1603 AW_window *NT_create_species_window(AW_root *aw_root, AW_CL cl_gb_main) { 
    1604     return create_speciesOrganismWindow(aw_root, (GBDATA*)cl_gb_main, false); 
    1605 } 
    1606 AW_window *NTX_create_organism_window(AW_root *aw_root, AW_CL cl_gb_main) { 
    1607     return create_speciesOrganismWindow(aw_root, (GBDATA*)cl_gb_main, true); 
    1608 } 
    1609  
    1610 AW_CL ad_query_global_cbs = 0; 
    1611  
    1612 void NT_unquery_all() { 
    1613     awt_unquery_all(0, (DbQuery *)ad_query_global_cbs); 
    1614 } 
    1615  
    1616 void NT_query_update_list() { 
    1617     awt_query_update_list(NULL, (DbQuery *)ad_query_global_cbs); 
    1618 } 
    1619  
    1620 AW_window *NTX_create_query_window(AW_root *aw_root) 
    1621 { 
    1622     static AW_window_simple_menu *aws = 0; 
    1623     if (aws) { 
    1624         return (AW_window *)aws; 
    1625     } 
    1626     aws = new AW_window_simple_menu; 
    1627     aws->init(aw_root, "SPECIES_QUERY", "SEARCH and QUERY"); 
    1628     aws->create_menu("More functions", "f"); 
    1629     aws->load_xfig("ad_query.fig"); 
    1630  
    1631  
    1632     awt_query_struct awtqs; 
    1633  
    1634     awtqs.gb_main             = GLOBAL_gb_main; 
    1635     awtqs.species_name        = AWAR_SPECIES_NAME; 
    1636     awtqs.tree_name           = AWAR_TREE; 
    1637     awtqs.select_bit          = 1; 
    1638     awtqs.use_menu            = 1; 
    1639     awtqs.ere_pos_fig         = "ere2"; 
    1640     awtqs.by_pos_fig          = "by2"; 
    1641     awtqs.qbox_pos_fig        = "qbox"; 
    1642     awtqs.rescan_pos_fig      = 0; 
    1643     awtqs.key_pos_fig         = 0; 
    1644     awtqs.query_pos_fig       = "content"; 
    1645     awtqs.result_pos_fig      = "result"; 
    1646     awtqs.count_pos_fig       = "count"; 
    1647     awtqs.do_query_pos_fig    = "doquery"; 
    1648     awtqs.config_pos_fig      = "doconfig"; 
    1649     awtqs.do_mark_pos_fig     = "domark"; 
    1650     awtqs.do_unmark_pos_fig   = "dounmark"; 
    1651     awtqs.do_delete_pos_fig   = "dodelete"; 
    1652     awtqs.do_set_pos_fig      = "doset"; 
    1653     awtqs.do_refresh_pos_fig  = "dorefresh"; 
    1654     awtqs.open_parser_pos_fig = "openparser"; 
    1655     awtqs.create_view_window  = NT_create_species_window; 
    1656     awtqs.selector            = &AWT_species_selector; 
    1657  
    1658     AW_CL cbs           = (AW_CL)awt_create_query_box(aws, &awtqs, "spec"); 
    1659     ad_query_global_cbs = cbs; 
    1660  
    1661     aws->create_menu("More search",     "s"); 
    1662     aws->insert_menu_topic("spec_search_equal_fields_within_db", "Search For Equal Fields and Mark Duplicates",                "E", "search_duplicates.hlp", AWM_ALL, (AW_CB)awt_search_equal_entries, cbs,                                          0); 
    1663     aws->insert_menu_topic("spec_search_equal_words_within_db",  "Search For Equal Words Between Fields and Mark Duplicates",  "W", "search_duplicates.hlp", AWM_ALL, (AW_CB)awt_search_equal_entries, cbs,                                          1); 
    1664     aws->insert_menu_topic("spec_search_next_relativ_of_sel",    "Search Next Relatives of SELECTED Species in PT_Server ...", "R", 0,                       AWM_ALL, (AW_CB)AW_POPUP,                 (AW_CL)ad_spec_next_neighbours_create,        cbs); 
    1665     aws->insert_menu_topic("spec_search_next_relativ_of_listed", "Search Next Relatives of LISTED Species in PT_Server ...",   "L", 0,                       AWM_ALL, (AW_CB)AW_POPUP,                 (AW_CL)ad_spec_next_neighbours_listed_create, cbs); 
    1666  
    1667     aws->button_length(7); 
    1668  
    1669     aws->at("close"); 
    1670     aws->callback((AW_CB0)AW_POPDOWN); 
    1671     aws->create_button("CLOSE", "CLOSE", "C"); 
    1672  
    1673     aws->at("help"); 
    1674     aws->callback(AW_POPUP_HELP, (AW_CL)"sp_search.hlp"); 
    1675     aws->create_button("HELP", "HELP", "H"); 
    1676  
    1677     return (AW_window *)aws; 
    1678 } 
    1679273 
    1680274// -------------------------------------------------------------------------------- 
  • trunk/NTREE/map_viewer.hxx

    r6428 r7801  
    1717#endif 
    1818 
    19 void MapViewer_set_default_root(AW_root *aw_root); 
    2019void launch_MapViewer_cb(GBDATA *gbd, enum AD_MAP_VIEWER_TYPE type); 
    2120 
  • trunk/NTREE/needs_libs

    r6448 r7801  
    22 
    33ARB_GDE/ARB_GDE.a 
    4 AWTC/AWTC.a 
    54AWTI/AWTI.a 
    65MERGE/MERGE.a 
     
    1110SL/TREE_READ/TREE_READ.a 
    1211SL/TREE_WRITE/TREE_WRITE.a 
     12SL/REFENTRIES/REFENTRIES.a 
    1313STAT/STAT.a 
    1414 
  • trunk/NTREE/nt_cb.hxx

    r7771 r7801  
    2828void NT_select_last_tree(AW_window *aww, char *awar_tree); 
    2929AW_window *NT_open_select_alignment_window(AW_root *awr); 
    30 void NT_system_cb(AW_window *aww, AW_CL command, AW_CL auto_help_file); 
     30void NT_system_cb(AW_window *aww, AW_CL cl_command, AW_CL cl_auto_help_file); 
    3131 
    3232/* NT_extern.cxx */ 
  • trunk/NTREE/nt_internal.h

    r7771 r7801  
    2828void NT_select_last_tree(AW_window *aww, char *awar_tree); 
    2929AW_window *NT_open_select_alignment_window(AW_root *awr); 
    30 void NT_system_cb(AW_window *aww, AW_CL command, AW_CL auto_help_file); 
     30void NT_system_cb(AW_window *aww, AW_CL cl_command, AW_CL cl_auto_help_file); 
    3131 
    3232/* AP_consensus.cxx */ 
     
    126126 
    127127/* ad_spec.cxx */ 
    128 void NT_create_species_var(AW_root *aw_root, AW_default aw_def); 
    129128void NT_count_different_chars(AW_window *, AW_CL cl_gb_main, AW_CL dummy_1x); 
    130129void NT_create_sai_from_pfold(AW_window *aww, AW_CL ntw, AW_CL dummy_1x); 
    131 AW_window *NT_create_ad_list_reorder(AW_root *root, AW_CL cl_item_selector); 
    132 AW_window *NT_create_ad_field_delete(AW_root *root, AW_CL cl_item_selector); 
    133 AW_window *NT_create_ad_field_create(AW_root *root, AW_CL cl_item_selector); 
    134 AW_window *NT_create_ad_field_convert(AW_root *root, AW_CL cl_item_selector); 
    135 void NT_spec_create_field_items(AW_window *aws); 
    136 void NT_detach_information_window(AW_window *aww, AW_CL cl_pointer_to_aww, AW_CL cl_AW_detach_information); 
    137 AW_window *NT_create_species_window(AW_root *aw_root, AW_CL cl_gb_main); 
    138 void NT_unquery_all(void); 
    139 void NT_query_update_list(void); 
    140130 
    141131/* ad_transpro.cxx */ 
  • trunk/PARSIMONY/GA_window.cxx

    r6867 r7801  
    1111#include <aw_window.hxx> 
    1212#include <aw_display.hxx> 
    13 #include <awt.hxx> 
    14 // #include <malloc.h> 
    1513#include "AP_buffer.hxx" 
    1614#include "ap_main.hxx" 
  • trunk/PARSIMONY/Makefile

    r7623 r7801  
    259259PARS_main.o: $(ARBHOME)/INCLUDE/awt_canvas.hxx 
    260260PARS_main.o: $(ARBHOME)/INCLUDE/awt_filter.hxx 
    261 PARS_main.o: $(ARBHOME)/INCLUDE/awt_nds.hxx 
    262261PARS_main.o: $(ARBHOME)/INCLUDE/awt_sel_boxes.hxx 
    263262PARS_main.o: $(ARBHOME)/INCLUDE/cb.h 
     
    266265PARS_main.o: $(ARBHOME)/INCLUDE/dupstr.h 
    267266PARS_main.o: $(ARBHOME)/INCLUDE/gui_aliview.hxx 
     267PARS_main.o: $(ARBHOME)/INCLUDE/nds.h 
    268268PARS_main.o: $(ARBHOME)/INCLUDE/smartptr.h 
    269269PARS_main.o: $(ARBHOME)/INCLUDE/test_global.h 
  • trunk/PARSIMONY/PARS_main.cxx

    r7668 r7801  
    2020#include <awt.hxx> 
    2121#include <ColumnStat.hxx> 
    22 #include <awt_nds.hxx> 
     22#include <nds.h> 
    2323#include <awt_sel_boxes.hxx> 
    2424#include <awt_filter.hxx> 
  • trunk/PROBE_DESIGN/Makefile

    r7314 r7801  
    123123SaiProbeVisualization.o: $(ARBHOME)/INCLUDE/aw_root.hxx 
    124124SaiProbeVisualization.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    125 SaiProbeVisualization.o: $(ARBHOME)/INCLUDE/awt.hxx 
    126125SaiProbeVisualization.o: $(ARBHOME)/INCLUDE/awt_canvas.hxx 
    127126SaiProbeVisualization.o: $(ARBHOME)/INCLUDE/awt_config_manager.hxx 
    128 SaiProbeVisualization.o: $(ARBHOME)/INCLUDE/awt_nds.hxx 
    129127SaiProbeVisualization.o: $(ARBHOME)/INCLUDE/awt_sel_boxes.hxx 
    130128SaiProbeVisualization.o: $(ARBHOME)/INCLUDE/cb.h 
    131129SaiProbeVisualization.o: $(ARBHOME)/INCLUDE/dupstr.h 
     130SaiProbeVisualization.o: $(ARBHOME)/INCLUDE/items.h 
     131SaiProbeVisualization.o: $(ARBHOME)/INCLUDE/nds.h 
    132132SaiProbeVisualization.o: $(ARBHOME)/INCLUDE/smartptr.h 
    133133SaiProbeVisualization.o: $(ARBHOME)/INCLUDE/test_global.h 
  • trunk/PROBE_DESIGN/SaiProbeVisualization.cxx

    r7668 r7801  
    1212#include "probe_match_parser.hxx" 
    1313 
    14 #include <awt.hxx> 
    15 #include <awt_nds.hxx> 
     14#include <nds.h> 
     15#include <items.h> 
    1616#include <awt_sel_boxes.hxx> 
    1717#include <awt_config_manager.hxx> 
  • trunk/SECEDIT/Makefile

    r7620 r7801  
    268268SEC_main.o: $(ARBHOME)/INCLUDE/aw_root.hxx 
    269269SEC_main.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    270 SEC_main.o: $(ARBHOME)/INCLUDE/awt.hxx 
    271270SEC_main.o: $(ARBHOME)/INCLUDE/awt_canvas.hxx 
    272271SEC_main.o: $(ARBHOME)/INCLUDE/BI_basepos.hxx 
  • trunk/SECEDIT/SEC_main.cxx

    r7666 r7801  
    1616 
    1717#include <FileBuffer.h> 
    18  
    19 #include <awt.hxx> 
    2018 
    2119#include <aw_awars.hxx> 
  • trunk/SEQ_QUALITY/Makefile

    r7625 r7801  
    7272SQ_functions.o: $(ARBHOME)/INCLUDE/aw_preset.hxx 
    7373SQ_functions.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    74 SQ_functions.o: $(ARBHOME)/INCLUDE/awt.hxx 
    7574SQ_functions.o: $(ARBHOME)/INCLUDE/BI_helix.hxx 
    7675SQ_functions.o: $(ARBHOME)/INCLUDE/downcast.h 
     
    109108SQ_main.o: $(ARBHOME)/INCLUDE/aw_root.hxx 
    110109SQ_main.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    111 SQ_main.o: $(ARBHOME)/INCLUDE/awt.hxx 
    112110SQ_main.o: $(ARBHOME)/INCLUDE/awt_filter.hxx 
    113111SQ_main.o: $(ARBHOME)/INCLUDE/awt_sel_boxes.hxx 
  • trunk/SEQ_QUALITY/SQ_functions.cxx

    r7625 r7801  
    2020#include <aw_preset.hxx> 
    2121#include <arb_progress.h> 
    22 #include <awt.hxx> 
    2322#include <arbdbt.h> 
    2423 
  • trunk/SEQ_QUALITY/SQ_main.cxx

    r7625 r7801  
    1616#include "SQ_functions.h" 
    1717 
    18 #include <awt.hxx> 
    1918#include <awt_filter.hxx> 
    2019#include <awt_sel_boxes.hxx> 
     20 
     21#include <aw_window.hxx> 
    2122#include <aw_awars.hxx> 
    2223#include <aw_msg.hxx> 
     24#include <aw_root.hxx> 
     25 
    2326#include <arb_progress.h> 
    24 #include <aw_root.hxx> 
    2527#include <arbdbt.h> 
    2628 
     
    122124 
    123125        // Load and use Sequence-Filter 
    124         AP_filter *filter = awt_get_filter(aw_root, (adfiltercbstruct*)res_from_awt_create_select_filter); 
     126        AP_filter *filter = awt_get_filter((adfiltercbstruct*)res_from_awt_create_select_filter); 
    125127 
    126128        /* 
  • trunk/SL/AW_NAME/AW_names_admin.cxx

    r6867 r7801  
    1111#include "AW_rename.hxx" 
    1212 
    13 #include <awt.hxx> 
     13#include <aw_window.hxx> 
    1414#include <aw_advice.hxx> 
    1515#include <aw_edit.hxx> 
  • trunk/SL/AW_NAME/Makefile

    r7186 r7801  
    6060AW_names_admin.o: $(ARBHOME)/INCLUDE/aw_root.hxx 
    6161AW_names_admin.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    62 AW_names_admin.o: $(ARBHOME)/INCLUDE/awt.hxx 
    6362AW_names_admin.o: $(ARBHOME)/INCLUDE/cb.h 
    6463AW_names_admin.o: $(ARBHOME)/INCLUDE/dupstr.h 
  • trunk/SL/DB_SCANNER/Makefile

    r7314 r7801  
    11# INCLUDE und GLOBALS MAIN CC cflags werden von aussen uebergeben 
    22 
    3 .SUFFIXES: .o .c .cxx .depend 
     3.SUFFIXES: .o .cxx .depend 
    44 
    5 C_OBJECTS =  
    6 CPP_OBJECTS = db_scanner.o  
    7 OBJECTS=$(C_OBJECTS) $(CPP_OBJECTS) 
     5OBJECTS=$(subst .cxx,.o,$(wildcard *.cxx)) 
    86 
    97$(MAIN): $(OBJECTS) 
     
    1210.cxx.o: 
    1311        $(CPP) $(cflags) -c $< $(CPPINCLUDES) $(POST_COMPILE) 
    14  
    15 .c.o: 
    16         $(ACC) $(cflags) -c $< $(AINCLUDES) $(POST_COMPILE) 
    1712 
    1813clean: 
     
    6156db_scanner.o: $(ARBHOME)/INCLUDE/aw_select.hxx 
    6257db_scanner.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    63 db_scanner.o: $(ARBHOME)/INCLUDE/awt.hxx 
    6458db_scanner.o: $(ARBHOME)/INCLUDE/cb.h 
    6559db_scanner.o: $(ARBHOME)/INCLUDE/dupstr.h 
     60db_scanner.o: $(ARBHOME)/INCLUDE/items.h 
    6661db_scanner.o: $(ARBHOME)/INCLUDE/smartptr.h 
    6762db_scanner.o: $(ARBHOME)/INCLUDE/test_global.h 
  • trunk/SL/DB_SCANNER/db_scanner.cxx

    r7635 r7801  
    1010 
    1111#include <db_scanner.hxx> 
     12#include <items.h> 
    1213 
    1314#include <AW_rename.hxx> 
    14  
    15 #include <awt.hxx> 
    1615 
    1716#include <aw_awars.hxx> 
     
    560559/*!********** Unmap edit field if 'key_data' has been changed (maybe entries deleted) 
    561560 *********/ 
    562 static void scanner_changed_cb2(GBDATA *dummy, db_scanner_data *cbs, GB_CB_TYPE gbtype) 
    563 { 
     561static void scanner_changed_cb2(GBDATA *dummy, db_scanner_data *cbs, GB_CB_TYPE gbtype) { 
    564562    cbs->aws->get_root()->awar(cbs->awarname_current_item)->write_pointer(NULL); 
    565563    // unmap edit field 
     
    567565} 
    568566 
    569 void map_db_scanner(AW_CL arbdb_scanid, GBDATA *gb_pntr, const char *key_path) 
    570 { 
     567void map_db_scanner(AW_CL arbdb_scanid, GBDATA *gb_pntr, const char *key_path) { 
    571568    db_scanner_data *cbs = (db_scanner_data *)arbdb_scanid; 
    572569    GB_push_transaction(cbs->gb_main); 
     
    595592    GB_pop_transaction(cbs->gb_main); 
    596593} 
     594 
     595GBDATA *get_db_scanner_main(AW_CL arbdb_scanid) { 
     596    db_scanner_data *cbs = (db_scanner_data *)arbdb_scanid; 
     597    return cbs->gb_main; 
     598} 
     599 
  • trunk/SL/DB_SCANNER/db_scanner.hxx

    r6867 r7801  
    6464void map_db_scanner(AW_CL arbdb_scanid, GBDATA *gb_pntr, const char *key_path); 
    6565 
     66 
     67GBDATA *get_db_scanner_main(AW_CL arbdb_scanid); 
     68 
    6669#else 
    6770#error db_scanner.hxx included twice 
  • trunk/SL/DB_SCANNER/needs_libs

    r6448 r7801  
    22 
    33SL/AW_NAME/AW_NAME.a 
     4SL/ITEMS/ITEMS.a 
  • trunk/SL/GUI_ALIVIEW/AWT_filter.cxx

    r7625 r7801  
    1 #include "awt.hxx" 
    21#include "awt_filter.hxx" 
    32#include "awt_sel_boxes.hxx" 
    4  
     3#include "ga_local.h" 
     4 
     5#include <aw_window.hxx> 
    56#include <aw_awars.hxx> 
    67#include <aw_root.hxx> 
     
    203204        int len = strlen(def_name); 
    204205 
    205         awt_assert(len >= 5); 
    206         awt_assert(strcmp(def_name+len-5, "/name") == 0); // filter awar has to be "SOMETHING/name" 
     206        ga_assert(len >= 5); 
     207        ga_assert(strcmp(def_name+len-5, "/name") == 0); // filter awar has to be "SOMETHING/name" 
    207208    } 
    208209#endif                          // DEBUG 
     
    390391} 
    391392 
    392 AP_filter *awt_get_filter(AW_root *aw_root, adfiltercbstruct *acbs) { 
     393AP_filter *awt_get_filter(adfiltercbstruct *acbs) { 
    393394    AP_filter *filter = NULL; 
    394395 
    395396    if (acbs) { 
    396         awt_assert(aw_root == acbs->awr);               // @@@ if this doesnt fail, remove aw_root from params 
    397          
    398397        GB_push_transaction(acbs->gb_main); 
    399398 
    400         char *filter_string = aw_root->awar(acbs->def_filter)->read_string(); 
     399        char *filter_string = acbs->awr->awar(acbs->def_filter)->read_string(); 
    401400        long  len           = 0; 
    402401 
    403402        { 
    404             char *use = aw_root->awar(acbs->def_alignment)->read_string(); 
     403            char *use = acbs->awr->awar(acbs->def_alignment)->read_string(); 
    405404 
    406405            len = GBT_get_alignment_len(acbs->gb_main, use); 
     
    410409        if (len != -1) { // have alignment 
    411410            filter  = new AP_filter(filter_string, "0", len); 
    412             int sim = aw_root->awar(acbs->def_simplify)->read_int(); 
     411            int sim = acbs->awr->awar(acbs->def_simplify)->read_int(); 
    413412            filter->enable_simplify((AWT_FILTER_SIMPLIFY)sim); 
    414413            free(filter_string); 
  • trunk/SL/GUI_ALIVIEW/ColumnStat.cxx

    r7314 r7801  
    1111#include "ColumnStat.hxx" 
    1212#include "awt_sel_boxes.hxx" 
     13#include "ga_local.h" 
    1314 
    1415#include <AP_filter.hxx> 
     
    2627#define AWAR_COLSTAT_ENABLE_HELIX "/name=/enable_helix" 
    2728 
    28 #define cs_assert(cond) arb_assert(cond) 
    29  
    3029void ColumnStat::refresh_selection_list() { 
    3130    GB_transaction ta(gb_main); 
     
    6160    awar_enable_helix = GBS_string_eval(awar_template, AWAR_COLSTAT_ENABLE_HELIX, 0); 
    6261 
    63     cs_assert(strcmp(awar_name, awar_alignment) != 0); // awar_template must end with (or contain) "/name" 
     62    ga_assert(strcmp(awar_name, awar_alignment) != 0); // awar_template must end with (or contain) "/name" 
    6463 
    6564    awr->awar_string(awar_name, "NONE"); 
  • trunk/SL/GUI_ALIVIEW/GUI_aliview.cxx

    r7337 r7801  
    3232 
    3333AP_filter *WeightedFilter::create_filter() const { 
    34     return awt_get_filter(adfilter->awr, adfilter); 
     34    return awt_get_filter(adfilter); 
    3535} 
    3636 
  • trunk/SL/GUI_ALIVIEW/Makefile

    r7623 r7801  
    4141 
    4242AWT_filter.o: awt_filter.hxx 
     43AWT_filter.o: ga_local.h 
    4344AWT_filter.o: $(ARBHOME)/INCLUDE/ad_prot.h 
    4445AWT_filter.o: $(ARBHOME)/INCLUDE/ad_t_prot.h 
     
    6162AWT_filter.o: $(ARBHOME)/INCLUDE/aw_root.hxx 
    6263AWT_filter.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    63 AWT_filter.o: $(ARBHOME)/INCLUDE/awt.hxx 
    6464AWT_filter.o: $(ARBHOME)/INCLUDE/awt_sel_boxes.hxx 
    6565AWT_filter.o: $(ARBHOME)/INCLUDE/cb.h 
     
    6969 
    7070ColumnStat.o: ColumnStat.hxx 
     71ColumnStat.o: ga_local.h 
    7172ColumnStat.o: $(ARBHOME)/INCLUDE/ad_prot.h 
    7273ColumnStat.o: $(ARBHOME)/INCLUDE/ad_t_prot.h 
  • trunk/SL/GUI_ALIVIEW/awt_filter.hxx

    r7625 r7801  
    5353AW_window *awt_create_select_filter_win(AW_root *aw_root, AW_CL cd_adfiltercbstruct); 
    5454 
    55 AP_filter *awt_get_filter(AW_root *aw_root, adfiltercbstruct *acbs); 
     55AP_filter *awt_get_filter(adfiltercbstruct *acbs); 
    5656void awt_destroy_filter(AP_filter *filter); 
    5757 
  • trunk/SL/Makefile

    r6573 r7801  
    66        AW_HELIX/AW_HELIX.dummy  \ 
    77        AW_NAME/AW_NAME.dummy  \ 
     8        DB_QUERY/DB_QUERY.dummy  \ 
    89        DB_SCANNER/DB_SCANNER.dummy  \ 
     10        DB_UI/DB_UI.dummy  \ 
    911        SEQIO/SEQIO.dummy  \ 
    1012        FAST_ALIGNER/FAST_ALIGNER.dummy  \ 
     
    1315        GUI_ALIVIEW/GUI_ALIVIEW.dummy  \ 
    1416        HELIX/HELIX.dummy  \ 
     17        ITEMS/ITEMS.dummy  \ 
    1518        MATRIX/MATRIX.dummy  \ 
     19        NDS/NDS.dummy  \ 
    1620        NEIGHBOURJOIN/NEIGHBOURJOIN.dummy  \ 
    1721        PRONUC/PRONUC.dummy  \ 
  • trunk/SL/TREEDISP/Makefile

    r7770 r7801  
    7070irstree_display.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    7171irstree_display.o: $(ARBHOME)/INCLUDE/awt_canvas.hxx 
    72 irstree_display.o: $(ARBHOME)/INCLUDE/awt_nds.hxx 
    7372irstree_display.o: $(ARBHOME)/INCLUDE/cb.h 
    7473irstree_display.o: $(ARBHOME)/INCLUDE/downcast.h 
    7574irstree_display.o: $(ARBHOME)/INCLUDE/dupstr.h 
     75irstree_display.o: $(ARBHOME)/INCLUDE/nds.h 
    7676irstree_display.o: $(ARBHOME)/INCLUDE/smartptr.h 
    7777irstree_display.o: $(ARBHOME)/INCLUDE/test_global.h 
     
    106106TreeCallbacks.o: $(ARBHOME)/INCLUDE/aw_root.hxx 
    107107TreeCallbacks.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    108 TreeCallbacks.o: $(ARBHOME)/INCLUDE/awt.hxx 
    109108TreeCallbacks.o: $(ARBHOME)/INCLUDE/awt_canvas.hxx 
    110109TreeCallbacks.o: $(ARBHOME)/INCLUDE/cb.h 
     
    145144TreeDisplay.o: $(ARBHOME)/INCLUDE/aw_root.hxx 
    146145TreeDisplay.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    147 TreeDisplay.o: $(ARBHOME)/INCLUDE/awt.hxx 
    148146TreeDisplay.o: $(ARBHOME)/INCLUDE/awt_attributes.hxx 
    149147TreeDisplay.o: $(ARBHOME)/INCLUDE/awt_canvas.hxx 
    150 TreeDisplay.o: $(ARBHOME)/INCLUDE/awt_nds.hxx 
    151148TreeDisplay.o: $(ARBHOME)/INCLUDE/cb.h 
    152149TreeDisplay.o: $(ARBHOME)/INCLUDE/downcast.h 
    153150TreeDisplay.o: $(ARBHOME)/INCLUDE/dupstr.h 
     151TreeDisplay.o: $(ARBHOME)/INCLUDE/nds.h 
    154152TreeDisplay.o: $(ARBHOME)/INCLUDE/smartptr.h 
    155153TreeDisplay.o: $(ARBHOME)/INCLUDE/test_global.h 
  • trunk/SL/TREEDISP/TreeCallbacks.cxx

    r7668 r7801  
    1515#include <aw_msg.hxx> 
    1616#include <aw_root.hxx> 
    17 #include <awt.hxx> 
    1817 
    1918#include <cctype> 
     
    8988    } 
    9089 
    91     awt_assert(strlen(text) < AWAR_FOOTER_MAX_LEN); // text too long! 
     90    td_assert(strlen(text) < AWAR_FOOTER_MAX_LEN); // text too long! 
    9291 
    9392    ntw->awr->awar(AWAR_FOOTER)->write_string(text); 
     
    124123static int nt_sequence_is_partial(GBDATA *gb_species, void *cd_partial) { 
    125124    long wanted  = (long)cd_partial; 
    126     awt_assert(wanted == 0 || wanted == 1); 
     125    td_assert(wanted == 0 || wanted == 1); 
    127126    int partial = GBT_is_partial(gb_species, 1-wanted, 0); 
    128127 
     
    169168        } 
    170169        default: 
    171             awt_assert(0); // illegal mode 
     170            td_assert(0); // illegal mode 
    172171            break; 
    173172    } 
     
    203202        } 
    204203        default: 
    205             awt_assert(0); // illegal mode 
     204            td_assert(0); // illegal mode 
    206205            break; 
    207206    } 
     
    235234                break; 
    236235            default: 
    237                 awt_assert(0); // illegal mode 
     236                td_assert(0); // illegal mode 
    238237                break; 
    239238        } 
     
    278277 
    279278    int color_group = mark_mode>>4; 
    280     awt_assert(mark_mode&(4|8)); // either 4 or 8 has to be set 
     279    td_assert(mark_mode&(4|8)); // either 4 or 8 has to be set 
    281280    bool mark_matching = (mark_mode&4) == 4; 
    282281    mark_mode    = mark_mode&3; 
     
    290289                case 1: GB_write_flag(gb_species, 1); break; 
    291290                case 2: GB_write_flag(gb_species, !GB_read_flag(gb_species)); break; 
    292                 default: awt_assert(0); break; 
     291                default: td_assert(0); break; 
    293292            } 
    294293        } 
     
    314313        case 1: label_base = "all_mark_color"; break; 
    315314        case 2: label_base = "all_invert_mark_color"; break; 
    316         default: awt_assert(0); break; 
     315        default: td_assert(0); break; 
    317316    } 
    318317 
     
    401400static void nt_insert_mark_topics(AW_window_menu_modes *awm, AW_active mask, AWT_canvas *ntw, int affect, const char *attrib) 
    402401{ 
    403     awt_assert(affect == (affect&MARK_MODE_UPPER_BITS)); // only bits 2 .. 4 are allowed 
     402    td_assert(affect == (affect&MARK_MODE_UPPER_BITS)); // only bits 2 .. 4 are allowed 
    404403 
    405404    nt_insert_mark_topic(awm, mask, attrib, "mark_all",            "Mark all %sSpecies%s",                    "M", "sp_mrk_all.hlp",    (AW_CB)NT_mark_all_cb,     (AW_CL)ntw, (AW_CL)(1+affect)); 
     
    493492#define MAXENTRY (AW_COLOR_GROUP_NAME_LEN+10) 
    494493 
    495     awt_assert(ntree_canvas != 0); 
     494    td_assert(ntree_canvas != 0); 
    496495 
    497496    awm->insert_sub_menu("Group all except Color ...", "C"); 
     
    755754                break; 
    756755            } 
    757             default: awt_assert(0); break; 
     756            default: td_assert(0); break; 
    758757        } 
    759758    } 
     
    797796            } 
    798797            else { 
    799                 awt_assert(zombies); 
     798                td_assert(zombies); 
    800799                msg = GBS_global_string("%i zombie%s", zombies, plural(zombies)); 
    801800            } 
     
    813812void NT_recompute_cb(AW_window *, AWT_canvas *ntw, AW_CL cl2) { 
    814813    AWT_graphic_tree *gt = dynamic_cast<AWT_graphic_tree*>(ntw->tree_disp); 
    815     awt_assert(gt); 
     814    td_assert(gt); 
    816815 
    817816    gt->get_root_node()->compute_tree(ntw->gb_main); 
  • trunk/SL/TREEDISP/TreeDisplay.cxx

    r7800 r7801  
    1111#include "TreeDisplay.hxx" 
    1212 
    13 #include <awt.hxx> 
    14 #include <awt_nds.hxx> 
     13#include <nds.h> 
    1514#include <aw_preset.hxx> 
    1615#include <aw_awars.hxx> 
     
    115114                case 1: GB_write_flag(at->gb_node, 1); break; 
    116115                case 2: GB_write_flag(at->gb_node, !GB_read_flag(at->gb_node)); break; 
    117                 default: awt_assert(0); 
     116                default: td_assert(0); 
    118117            } 
    119118        } 
     
    146145                    case 1: GB_write_flag(at->gb_node, 1); break; 
    147146                    case 2: GB_write_flag(at->gb_node, !oldMark); break; 
    148                     default: awt_assert(0); 
     147                    default: td_assert(0); 
    149148                } 
    150149            } 
     
    430429 
    431430    resort_tree(lmode, at->get_leftson()); 
    432     awt_assert(leafname); 
     431    td_assert(leafname); 
    433432    const char *leftleafname = leafname; 
    434433 
    435434    resort_tree(rmode, at->get_rightson()); 
    436     awt_assert(leafname); 
     435    td_assert(leafname); 
    437436    const char *rightleafname = leafname; 
    438437 
    439     awt_assert(leftleafname && rightleafname); 
     438    td_assert(leftleafname && rightleafname); 
    440439 
    441440    if (leftleafname && rightleafname) { 
     
    583582            break; 
    584583        default: 
    585             awt_assert(0); 
     584            td_assert(0); 
    586585    } 
    587586 
     
    749748            } 
    750749            else { 
    751                 awt_assert(0); 
     750                td_assert(0); 
    752751            } 
    753752 
     
    850849                        while (root_node->father) root_node = root_node->get_father(); // search father 
    851850 
    852                         awt_assert(root_node); 
     851                        td_assert(root_node); 
    853852 
    854853                        AWT_graphic_tree_group_state state; 
     
    17061705    tree_static = new AP_tree_root(aliview, tree_prototype, seq_prototype, insert_delete_cbs); 
    17071706 
    1708     awt_assert(!insert_delete_cbs || link_to_database); // inserting delete callbacks w/o linking to DB has no effect! 
     1707    td_assert(!insert_delete_cbs || link_to_database); // inserting delete callbacks w/o linking to DB has no effect! 
    17091708    link_to_database = link_to_database_; 
    17101709} 
     
    18791878 
    18801879    if (show) { 
    1881         awt_assert(text != 0); 
     1880        td_assert(text != 0); 
    18821881        device->text(AWT_GC_BRANCH_REMARK, text, pos, alignment, filteri); 
    18831882    } 
     
    22832282        case AP_LIST_NDS: 
    22842283            // rulers not allowed in these display modes 
    2285             awt_assert(0); 
     2284            td_assert(0); 
    22862285            tree_awar = 0; 
    22872286            break; 
     
    23992398    size_t get_part_count() const { return part_count; } 
    24002399    const Column& get_column(size_t p) const { 
    2401         awt_assert(p<part_count); 
     2400        td_assert(p<part_count); 
    24022401        return column[p]; 
    24032402    } 
     
    24892488    } 
    24902489 
    2491     awt_assert(species_count <= displayed_rows); 
     2490    td_assert(species_count <= displayed_rows); 
    24922491 
    24932492    // calculate column offsets and detect column alignment 
     
    27092708class fake_AW_GC : public AW_GC { 
    27102709    virtual void wm_set_foreground_color(AW_rgb /*col*/) {  } 
    2711     virtual void wm_set_function(AW_function /*mode*/) { awt_assert(0); } 
     2710    virtual void wm_set_function(AW_function /*mode*/) { td_assert(0); } 
    27122711    virtual void wm_set_lineattributes(short /*lwidth*/, AW_linestyle /*lstyle*/) {} 
    27132712    virtual void wm_set_font(AW_font /*font_nr*/, int size, int */*found_size*/) { 
     
    27202719    fake_AW_GC(AW_common *common_) : AW_GC(common_) {} 
    27212720    virtual int get_available_fontsizes(AW_font /*font_nr*/, int */*available_sizes*/) const { 
    2722         awt_assert(0); 
     2721        td_assert(0); 
    27232722        return 0; 
    27242723    } 
     
    27852784        Rectangle drawn = size_device.get_size_information(); 
    27862785 
    2787         awt_assert(drawn.surface() >= 0.0); 
     2786        td_assert(drawn.surface() >= 0.0); 
    27882787 
    27892788        double zoomx = SCREENSIZE/drawn.width(); 
  • trunk/SL/TREEDISP/TreeDisplay.hxx

    r7668 r7801  
    1818#include <awt_canvas.hxx> 
    1919#endif 
     20 
     21#define td_assert(cond) arb_assert(cond) 
    2022 
    2123#define AWAR_DTREE_BASELINEWIDTH   "awt/dtree/baselinewidth" 
  • trunk/SL/TREEDISP/irstree_display.cxx

    r7768 r7801  
    1111#include "TreeDisplay.hxx" 
    1212 
    13 #include <awt_nds.hxx> 
     13#include <nds.h> 
    1414#include <aw_awars.hxx> 
    1515 
  • trunk/SL/TREEDISP/needs_libs

    r6448 r7801  
    22 
    33SL/AP_TREE/AP_TREE.a 
     4SL/NDS/NDS.a 
  • trunk/SL/TREE_WRITE/Makefile

    r7314 r7801  
    5151TreeWrite.o: $(ARBHOME)/INCLUDE/attributes.h 
    5252TreeWrite.o: $(ARBHOME)/INCLUDE/aw_base.hxx 
    53 TreeWrite.o: $(ARBHOME)/INCLUDE/awt_nds.hxx 
    5453TreeWrite.o: $(ARBHOME)/INCLUDE/dupstr.h 
     54TreeWrite.o: $(ARBHOME)/INCLUDE/nds.h 
    5555TreeWrite.o: $(ARBHOME)/INCLUDE/smartptr.h 
    5656TreeWrite.o: $(ARBHOME)/INCLUDE/test_global.h 
  • trunk/SL/TREE_WRITE/TreeWrite.h

    r6607 r7801  
    1515#include <arbdb_base.h> 
    1616#endif 
    17 #ifndef AWT_NDS_HXX 
    18 #include <awt_nds.hxx> 
     17#ifndef NDS_H 
     18#include <nds.h> 
    1919#endif 
    2020 
  • trunk/SOURCE_TOOLS/generate_all_links.sh

    r7770 r7801  
    216216symlink_file ../AWT/awt_hotkeys.hxx INCLUDE/awt_hotkeys.hxx && 
    217217symlink_file ../AWT/awt_input_mask.hxx INCLUDE/awt_input_mask.hxx && 
    218 symlink_file ../AWT/awt_item_sel_list.hxx INCLUDE/awt_item_sel_list.hxx && 
    219218symlink_file ../AWT/awt_macro.hxx INCLUDE/awt_macro.hxx && 
    220219symlink_file ../AWT/awt_map_key.hxx INCLUDE/awt_map_key.hxx && 
    221 symlink_file ../AWT/awt_nds.hxx INCLUDE/awt_nds.hxx && 
    222220symlink_file ../AWT/awt_sel_boxes.hxx INCLUDE/awt_sel_boxes.hxx && 
    223221symlink_file ../AWT/awt_seq_colors.hxx INCLUDE/awt_seq_colors.hxx && 
    224222symlink_file ../AWT/awt_www.hxx INCLUDE/awt_www.hxx && 
    225223symlink_file ../AWT/awtlocal.hxx INCLUDE/awtlocal.hxx && 
    226 symlink_file ../AWT/refentries.h INCLUDE/refentries.h && 
    227224symlink_file ../AWTC/awtc_next_neighbours.hxx INCLUDE/awtc_next_neighbours.hxx && 
    228225symlink_file ../AWTC/awtc_submission.hxx INCLUDE/awtc_submission.hxx && 
     
    263260symlink_file ../SL/AW_NAME/AW_rename.hxx INCLUDE/AW_rename.hxx && 
    264261symlink_file ../SL/DB_SCANNER/db_scanner.hxx INCLUDE/db_scanner.hxx && 
     262symlink_file ../SL/DB_QUERY/db_query.h INCLUDE/db_query.h && 
     263symlink_file ../SL/DB_UI/dbui.h INCLUDE/dbui.h && 
    265264symlink_file ../SL/SEQIO/seqio.hxx INCLUDE/seqio.hxx && 
    266265symlink_file ../SL/FAST_ALIGNER/fast_aligner.hxx INCLUDE/fast_aligner.hxx && 
     
    272271symlink_file ../SL/HELIX/BI_helix.hxx INCLUDE/BI_helix.hxx && 
    273272symlink_file ../SL/HELIX/BI_basepos.hxx INCLUDE/BI_basepos.hxx && 
     273symlink_file ../SL/ITEMS/items.h INCLUDE/items.h && 
     274symlink_file ../SL/ITEMS/item_sel_list.h INCLUDE/item_sel_list.h && 
    274275symlink_file ../SL/MATRIX/AP_matrix.hxx INCLUDE/AP_matrix.hxx && 
     276symlink_file ../SL/NDS/nds.h INCLUDE/nds.h && 
    275277symlink_file ../SL/NEIGHBOURJOIN/neighbourjoin.hxx INCLUDE/neighbourjoin.hxx && 
    276278symlink_file ../SL/PRONUC/AP_codon_table.hxx INCLUDE/AP_codon_table.hxx && 
    277279symlink_file ../SL/PRONUC/AP_pro_a_nucs.hxx INCLUDE/AP_pro_a_nucs.hxx && 
    278280symlink_file ../SL/PRONUC/iupac.h INCLUDE/iupac.h && 
     281symlink_file ../SL/REFENTRIES/refentries.h INCLUDE/refentries.h && 
    279282symlink_file ../SL/REGEXPR/RegExpr.hxx INCLUDE/RegExpr.hxx && 
    280283symlink_file ../SL/SEQUENCE/AP_seq_dna.hxx INCLUDE/AP_seq_dna.hxx && 
  • trunk/STAT/Makefile

    r7314 r7801  
    117117ST_window.o: $(ARBHOME)/INCLUDE/aw_select.hxx 
    118118ST_window.o: $(ARBHOME)/INCLUDE/aw_window.hxx 
    119 ST_window.o: $(ARBHOME)/INCLUDE/awt.hxx 
    120119ST_window.o: $(ARBHOME)/INCLUDE/awt_filter.hxx 
    121 ST_window.o: $(ARBHOME)/INCLUDE/awt_item_sel_list.hxx 
    122120ST_window.o: $(ARBHOME)/INCLUDE/cb.h 
    123121ST_window.o: $(ARBHOME)/INCLUDE/ColumnStat.hxx 
    124122ST_window.o: $(ARBHOME)/INCLUDE/dupstr.h 
    125123ST_window.o: $(ARBHOME)/INCLUDE/gui_aliview.hxx 
     124ST_window.o: $(ARBHOME)/INCLUDE/item_sel_list.h 
     125ST_window.o: $(ARBHOME)/INCLUDE/items.h 
    126126ST_window.o: $(ARBHOME)/INCLUDE/smartptr.h 
    127127ST_window.o: $(ARBHOME)/INCLUDE/test_global.h 
  • trunk/STAT/ST_window.cxx

    r7186 r7801  
    1818#include <aw_root.hxx> 
    1919#include <aw_msg.hxx> 
    20 #include <awt.hxx> 
    21 #include <awt_item_sel_list.hxx> 
     20#include <item_sel_list.h> 
    2221#include <awt_filter.hxx> 
    2322 
  • trunk/TOOLS/Makefile

    r7770 r7801  
    170170arb_export_tree.o: $(ARBHOME)/INCLUDE/attributes.h 
    171171arb_export_tree.o: $(ARBHOME)/INCLUDE/aw_base.hxx 
    172 arb_export_tree.o: $(ARBHOME)/INCLUDE/awt_nds.hxx 
    173172arb_export_tree.o: $(ARBHOME)/INCLUDE/dupstr.h 
     173arb_export_tree.o: $(ARBHOME)/INCLUDE/nds.h 
    174174arb_export_tree.o: $(ARBHOME)/INCLUDE/smartptr.h 
    175175arb_export_tree.o: $(ARBHOME)/INCLUDE/test_global.h 
  • trunk/WETC/WETC_main.cxx

    r6867 r7801  
    1010 
    1111#include <awt.hxx> 
     12#include <aw_window.hxx> 
    1213#include <aw_root.hxx> 
    1314#include <arbdb.h> 
  • trunk/WINDOW/AW_edit.cxx

    r7623 r7801  
    135135} 
    136136 
    137  
     137void AW_system(AW_window *aww, GBDATA *gb_main, const char *command, const char *auto_help_file) { 
     138    if (auto_help_file) AW_POPUP_HELP(aww, (AW_CL)auto_help_file); 
     139    if (GBCMC_system(gb_main, command) != 0) { 
     140        const char *error = GBS_global_string("Failed to execute '%s'\n(Reason: %s)", command, GB_await_error()); 
     141        aw_message(error); 
     142    } 
     143} 
  • trunk/WINDOW/aw_detach.hxx

    r7623 r7801  
    1313#define AW_DETACH_HXX 
    1414 
     15#ifndef AW_AWAR_HXX 
     16#include "aw_awar.hxx" 
     17#endif 
    1518#ifndef AW_ROOT_HXX 
    1619#include "aw_root.hxx" 
  • trunk/WINDOW/aw_root.hxx

    r7799 r7801  
    186186inline AW_default get_AW_ROOT_DEFAULT() { return AW_root::SINGLETON->check_properties(NULL); } 
    187187 
     188void AW_system(AW_window *aww, GBDATA *gb_main, const char *command, const char *auto_help_file); 
    188189 
    189190#else