54         window_nr(window_nr_),
 
   63     int get_nr()
 const { 
return window_nr; }
 
   95     static void with_all_mapped_windows(
const GenmapWindowCallback& gwcb);
 
  128         for (
int nr = 0; nr<winCount; ++nr) {
 
  137     if (nr<window_counter) {
 
  144     if (window_counter>windows_size) {
 
  145         int             new_windows_size = windows_size+5;
 
  148         for (
int i = 0; i<windows_size; ++i) new_windows[i] = windows[i];
 
  151         windows      = new_windows;
 
  152         windows_size = new_windows_size;
 
  158     windows[nr]->
init(aw_root, gb_main);
 
  192         gb_gene_data(gb_gene_data_)
 
  208             if (mapwin && mapwin->
get_graphic() == wanted_graphic) {
 
  235     typedef map<GEN_graphic*, gene_container_changed_cb_data> callback_dict;
 
  236     static callback_dict                                      installed_callbacks;
 
  238     callback_dict::iterator found = installed_callbacks.find(gg);
 
  239     if (found == installed_callbacks.end()) {
 
  242         found                   = installed_callbacks.find(gg);
 
  243         gen_assert(found != installed_callbacks.end());
 
  283     printf(
"Window %i: screen is: %i/%i -> %i/%i\n", win->
get_nr(), screen.
l, screen.
t, screen.
r, screen.
b);
 
  292         if (wrange.
valid()) {
 
  294             printf(
"Window %i: Draw world range of selected gene is: %f/%f -> %f/%f\n",
 
  300             printf(
"Window %i: Draw screen range of selected gene is: %f/%f -> %f/%f\n",
 
  301                    win->
get_nr(), srange.left(), srange.top(), srange.right(), srange.bottom());
 
  307             if (srange.top() < 0) {
 
  308                 scrolly = 
AW_INT(srange.top())-2;
 
  310             else if (srange.bottom() > screen.
b) {
 
  311                 scrolly = 
AW_INT(srange.bottom())-screen.
b+2;
 
  313             if (srange.left() < 0) {
 
  314                 scrollx = 
AW_INT(srange.left())-2;
 
  316             else if (srange.right() > screen.
r) {
 
  317                 scrollx = 
AW_INT(srange.right())-screen.
r+2;
 
  320             if (force_center_if_fits) {
 
  322                     int gene_center_x   = 
AW_INT((srange.left()+srange.right())/2);
 
  323                     int screen_center_x = (screen.
l+screen.
r)/2;
 
  324                     scrollx             = gene_center_x-screen_center_x;
 
  326                     printf(
"center x\n");
 
  330                     int gene_center_y   = 
AW_INT((srange.top()+srange.bottom())/2);
 
  331                     int screen_center_y = (screen.
t+screen.
b)/2;
 
  332                     scrolly             = gene_center_y-screen_center_y;
 
  334                     printf(
"center y\n");
 
  340             printf(
"scroll %i/%i\n", scrollx, scrolly);
 
  343             canvas->scroll(scrollx, scrolly);
 
  346     canvas->request_refresh();
 
  354     if (jump || force_refresh || force_zoom_reset) {
 
  372 #define DISPLAY_TYPE_BIT(disp_type) (1<<(disp_type)) 
  373 #define ALL_DISPLAY_TYPES           (DISPLAY_TYPE_BIT(GEN_DISPLAY_STYLES)-1) 
  397     int      window_nr = win->
get_nr();
 
  418     int window_nr = win->
get_nr();
 
  420     const char *local_awar_name      = 
NULp;
 
  421     const char *local_lock_awar_name = 
NULp;
 
  422     const char *global_awar_name     = 
NULp;
 
  436     AW_awar *global_awar = awr->
awar(global_awar_name);
 
  438     int lock_value = awr->
awar(local_lock_awar_name)->
read_int();
 
  439     if (lock_value == 0) { 
 
  440         local_awar->
map(global_awar);
 
  476     int window_nr = win->
get_nr();
 
  488     awar_lock_orga->
touch();
 
  489     awar_lock_gene->
touch();
 
  521     enum { REFRESH_ONLY = 0, ZOOM_RESET = 1 };
 
  546     const char *text = 
NULp;
 
  579     static AW_window_simple *aws = 
NULp;
 
  582         aws = 
new AW_window_simple;
 
  584         aws->init(awr, 
"GEN_OPTS", 
"Genemap options");
 
  585         aws->load_xfig(
"gen_options.fig");
 
  589         aws->create_button(
"CLOSE", 
"CLOSE", 
"C");
 
  593         aws->create_button(
"HELP", 
"HELP", 
"H");
 
  595         aws->auto_space(5, 5);
 
  596         aws->label_length(26);
 
  598         const int FIELDWIDTH  = 12;
 
  599         const int SCALERWIDTH = 300;
 
  602         aws->at(
"arrow_size");      aws->create_input_field_with_scaler(
AWAR_GENMAP_ARROW_SIZE, FIELDWIDTH, SCALERWIDTH);
 
  604         aws->at(
"show_hidden");
 
  605         aws->label(
"Show hidden genes");
 
  609         aws->label(
"Show NDS for all genes");
 
  613         aws->label(
"Auto jump to selected gene");
 
  728         : progress(marked_genes_),
 
  729           gb_species_data(gb_species_data_),
 
  731           existing(gb_species_data, marked_genes_),
 
  739         if (duplicateSpecies>0) {
 
  741                                          "Duplicated gene-species got names with numerical postfixes ('.1', '.2', ...)" 
  742                                          , duplicateSpecies));
 
  745             aw_message(
"Naming problems occurred.\nYou have to call 'Species/Synchronize IDs'!");
 
  753     const char *other_acc    = 
NULp;
 
  755     if (gb_other_species) {
 
  767     if (!full_species_name) full_species_name = species_name;
 
  775         const char *ali = eg2ps->
ali;
 
  779         sprintf(acc, 
"ARB_GENE_%lX", 
id);
 
  785         bool    create_new_gene_species = 
true;
 
  786         char   *short_name              = 
NULp;
 
  788         if (gb_exist_geneSpec) {
 
  794             char *question = 
GBS_global_string_copy(
"Already have a gene-species for %s/%s ('%s')", species_name, gene_name, existing_name);
 
  795             int   answer   = ask_about_existing_gene_species->get_answer(
"existing_pseudo_species", question, 
"Overwrite species,Insert new alignment,Skip,Create new", 
"all", 
true);
 
  797             create_new_gene_species = 
false;
 
  802                     create_new_gene_species = 
true;
 
  809                         char *question2        = 
GBS_global_string_copy(
"Gene-species '%s' already has data in '%s'", existing_name, ali);
 
  810                         int   overwrite_answer = ask_to_overwrite_alignment->get_answer(
"overwrite_gene_data", question2, 
"Overwrite data,Skip", 
"all", 
true);
 
  812                         if (overwrite_answer == 1) error      = 
GBS_global_string(
"Skipped gene-species '%s' (already had data in alignment)", existing_name); 
 
  813                         else if (overwrite_answer == 2) error = 
"Aborted."; 
 
  825                     create_new_gene_species = 
true;
 
  839             if (create_new_gene_species) {
 
  846                                 if (strcmp(acc, other_acc) == 0) { 
 
  847                                     char *newName = 
NULp;
 
  848                                     for (
int postfix = 1; ; ++postfix) {
 
  856                                         if (!other_acc || strcmp(acc, other_acc) != 0) {
 
  863                                     if (!error) freeset(short_name, newName);
 
  868                                     error              = 
GBS_global_string(
"acc of '%s' differs from acc stored in nameserver", short_name);
 
  878                         const char *msg = 
GBS_global_string(
"%s\nGenerating a random name instead.", error);
 
  883                         if (!short_name) error = 
GBS_global_string(
"Failed to create a new name for pseudo gene-species '%s'", full_name);
 
  890                     if (!gb_exist_geneSpec) error = 
GB_export_errorf(
"Failed to create pseudo-species '%s'", short_name);
 
  912             const char *codon_start  = 
NULp;
 
  913             const char *transl_table = 
NULp;
 
  922             if (!error && codon_start)  error = 
GEN_species_add_entry(gb_exist_geneSpec, 
"codon_start", codon_start);
 
  923             if (!error && transl_table) error = 
GEN_species_add_entry(gb_exist_geneSpec, 
"transl_table", transl_table);
 
  946         bool org_mark_flag = mark_flag;
 
  949             case GEN_MARK:              mark_flag = 1; 
break;
 
  967                 bool    hidden    = gb_hidden ? 
GB_read_byte(gb_hidden) != 0 : 
false;
 
  979         if (mark_flag != org_mark_flag) 
GB_write_flag(gb_gene, mark_flag ? 1 : 0);
 
  993         bool    hidden     = gb_hidden ? (
GB_read_byte(gb_hidden) != 0) : 
false;
 
  994         bool    org_hidden = hidden;
 
 1006         if (hidden != org_hidden) {
 
 1014                                 void (*do_command)(
int cmode, 
GBDATA *gb_species, 
AW_CL cl_user), 
int mode, 
AW_CL cl_user) {
 
 1025                 do_command(mode, gb_organism, cl_user);
 
 1034                 do_command(mode, gb_organism, cl_user);
 
 1044                 if (gb_organism != gb_curr_organism) do_command(mode, gb_organism, cl_user);
 
 1051                 error = 
"First you have to select a species.";
 
 1054                 do_command(mode, gb_organism, cl_user);
 
 1073     typedef map<AW_CL, GEN_unique_param> ExistingParams;
 
 1074     static ExistingParams existing_params; 
 
 1083         pair<ExistingParams::iterator, bool> created = existing_params.insert(ExistingParams::value_type(unique_, 
GEN_unique_param(gb_main_, unique_)));
 
 1084         ExistingParams::iterator             wanted  = created.first;
 
 1089 GEN_unique_param::ExistingParams GEN_unique_param::existing_params;
 
 1103     gen_count_marked_genes = 0;
 
 1107         const char *where = 
NULp;
 
 1109         switch (perform_mode) {
 
 1145         ask_about_existing_gene_species = 
new AW_repeated_question;
 
 1146         ask_to_overwrite_alignment      = 
new AW_repeated_question;
 
 1152                 gen_count_marked_genes = 0;
 
 1157                 eg2ps                           = 
new EG2PS_data(ali, gb_species_data, gen_count_marked_genes);
 
 1168         ask_to_overwrite_alignment      = 
NULp;
 
 1169         ask_about_existing_gene_species = 
NULp;
 
 1306     char macro_name_buffer[50];
 
 1308     sprintf(macro_name_buffer, 
"%s_of_current", macro_prefix);
 
 1311     sprintf(macro_name_buffer, 
"%s_of_marked", macro_prefix);
 
 1314     sprintf(macro_name_buffer, 
"%s_of_all", macro_prefix);
 
 1325     char macro_name_buffer[50];
 
 1327     sprintf(macro_name_buffer, 
"%s_of_current", macro_prefix);
 
 1330     sprintf(macro_name_buffer, 
"%s_of_all_but_current", macro_prefix);
 
 1333     sprintf(macro_name_buffer, 
"%s_of_marked", macro_prefix);
 
 1336     sprintf(macro_name_buffer, 
"%s_of_all", macro_prefix);
 
 1351     static AW_window_simple *aws = 
NULp;
 
 1353         aws = 
new AW_window_simple;
 
 1355         aws->init(aw_root, 
"DEBUG_AWARS", 
"DEBUG AWARS");
 
 1357         aws->auto_space(10, 10);
 
 1359         const int width = 50;
 
 1361         ;                  aws->label(
"AWAR_SPECIES_NAME            "); aws->create_input_field(
AWAR_SPECIES_NAME, width);
 
 1362         aws->at_newline(); aws->label(
"AWAR_ORGANISM_NAME           "); aws->create_input_field(
AWAR_ORGANISM_NAME, width);
 
 1363         aws->at_newline(); aws->label(
"AWAR_GENE_NAME               "); aws->create_input_field(
AWAR_GENE_NAME, width);
 
 1364         aws->at_newline(); aws->label(
"AWAR_COMBINED_GENE_NAME      "); aws->create_input_field(
AWAR_COMBINED_GENE_NAME, width);
 
 1365         aws->at_newline(); aws->label(
"AWAR_EXPERIMENT_NAME         "); aws->create_input_field(
AWAR_EXPERIMENT_NAME, width);
 
 1367         aws->at_newline(); aws->label(
"AWAR_PROTEOM_NAME            "); aws->create_input_field(
AWAR_PROTEOM_NAME, width);
 
 1368         aws->at_newline(); aws->label(
"AWAR_PROTEIN_NAME            "); aws->create_input_field(
AWAR_PROTEIN_NAME, width);
 
 1394         if (species_name[0] && gene_name[0]) {
 
 1435     const char *
title  = 
"Organisms";
 
 1436     const char *hotkey = 
"O";
 
 1459     const char *
title  = 
"Gene-Species";
 
 1460     const char *hotkey = 
"S";
 
 1491         if (for_ARB_NTREE) {
 
 1523         if (!for_ARB_NTREE) {   
 
 1660     int cur_x, cur_y, start_x, first_line_y, second_line_y, third_line_y;
 
 1664     at(start_x, first_line_y);
 
 1675     at(start_x, second_line_y);
 
 1693     at(gene_x, first_line_y);
 
 1698     at(gene_x, second_line_y);
 
 1706     at(lock_x, first_line_y);
 
 1709     at(lock_x, second_line_y);
 
 1713     int dtype_x1 = cur_x;
 
 1719     at(dtype_x1, first_line_y);
 
 1731     at(dtype_x1, second_line_y);
 
 1734     create_button(
"VERTICAL_DISPLAY_TYPE", 
"#gen_vertical.xpm");
 
 1740     at(jump_x, first_line_y);
 
 1750     at(help_x, first_line_y);
 
 1755     at(help_x, second_line_y);
 
static void mark_gene_species(AW_window *, MarkCommand mark, GBDATA *gb_main)
~GEN_item_type_species_selector() OVERRIDE
GB_ERROR GB_begin_transaction(GBDATA *gbd)
ItemSelector & GEN_get_selector()
AW_window * AW_create_gc_window_named(AW_root *aw_root, AW_gc_manager *gcman, const char *wid, const char *windowname)
static AW_window * GEN_create_gc_window(AW_root *awr, AW_gc_manager *gcman)
AW::Vector transform(const AW::Vector &vec) const 
void GEN_create_nds_vars(AW_root *aw_root, AW_default awdef, GBDATA *gb_main, const DatabaseCallback &NDS_changed_callback)
GBDATA * GBT_create_new_alignment(GBDATA *gb_main, const char *name, long len, long aligned, long security, const char *type, const char *why_created)
UniqueNameDetector existing
bool name_known(const char *name)
AW_window * create_species_query_window(AW_root *aw_root, GBDATA *gb_main)
void get_at_position(int *x, int *y) const 
static AW_window * create_colorize_genes_window(AW_root *aw_root, GBDATA *gb_main)
gene_container_changed_cb_data()
void set_display_update_callback(AW_root *awr, const char *awar_name, bool zoom_reset, int display_type_mask)
GB_ERROR GB_commit_transaction(GBDATA *gbd)
GEN_map_window(int window_nr_)
void popup_organism_info_window(AW_root *aw_root, GBDATA *gb_main)
const awt_input_mask_descriptor * AWT_look_input_mask(int id)
void button_length(int length)
GBDATA * GEN_next_gene(GBDATA *gb_gene)
void EXP_create_experiments_submenu(AW_window_menu_modes *awm, GBDATA *gb_main, bool submenu)
static void GEN_create_hide_submenu(AW_window_menu_modes *awm, GBDATA *gb_main)
void request_zoom_reset()
const AW_screen_area & get_area_size() const 
static void GEN_insert_hide_submenu(AW_window_menu_modes *awm, GBDATA *gb_main, const char *macro_prefix, const char *submenu_name, const char *hot_key, const char *help_file, GEN_HIDE_MODE hide_mode)
GEN_item_type_species_selector()
#define AWAR_LOCAL_GENE_NAME(window_nr)
char * AWTC_generate_random_name(UniqueNameDetector &existingNames)
static void GEN_create_mask_submenu(AW_window_menu_modes *awm, GBDATA *gb_main)
void insert_menu_topic(const char *id, const char *name, const char *mnemonic, const char *help_text_, AW_active mask, const WindowCallback &wcb)
GB_ERROR GB_write_string(GBDATA *gbd, const char *s)
void GEN_add_pseudo_species_to_hash(GBDATA *gb_pseudo, GB_HASH *pseudo_hash)
const char * get_window_id() const 
#define AWAR_GENMAP_SHOW_HIDDEN
int no_of_managed_windows()
AW_window * GEN_create_first_map(AW_root *aw_root, GBDATA *gb_main)
GBDATA * GEN_find_gene(GBDATA *gb_species, const char *name)
GB_ERROR GB_add_callback(GBDATA *gbd, GB_CB_TYPE type, const DatabaseCallback &dbcb)
ItemSelector & ORGANISM_get_selector()
AW_root * get_aw_root() const 
const char * GEN_window_local_awar_name(const char *awar_name, int window_nr)
GBDATA * current(AW_root *root, GBDATA *gb_main) const OVERRIDE
long GBT_mark_all(GBDATA *gb_main, int flag)
static AW_window * GEN_create_options_window(AW_root *awr)
static void GEN_local_lock_changed_cb(AW_root *awr, GEN_map_window *win, bool gene_lock)
GB_ERROR GBT_check_alignment_name(const char *alignment_name)
static void GEN_organism_or_gene_changed_cb(AW_root *awr)
#define AWAR_ORGANISM_NAME
static void gen_extract_gene_2_pseudoSpecies(GBDATA *gb_species, GBDATA *gb_gene, EG2PS_data *eg2ps)
GBDATA * GEN_get_current_organism(GBDATA *gb_main)
GBDATA * GBT_get_alignment(GBDATA *gb_main, const char *aliname)
#define AWAR_COMBINED_EXPERIMENT_NAME
GB_ERROR AWTC_generate_one_name(GBDATA *gb_main, const char *full_name, const char *acc, const char *addid, char *&new_name)
#define AWAR_PROTEOM_NAME
static AW_repeated_question * ask_about_existing_gene_species
char * ARB_strdup(const char *str)
void create_toggle(const char *awar_name)
void GB_end_transaction_show_error(GBDATA *gbd, GB_ERROR error, void(*error_handler)(GB_ERROR))
GBDATA * GEN_get_local_gene_data(GEN_graphic *gg)
AW_awar * set_minmax(float min, float max)
#define AWAR_GENMAP_BOOK_BASES_PER_LINE
const char * GBS_global_string(const char *templat,...)
static void GEN_jump_cb(AW_window *aww, bool force_center_if_fits)
static void GEN_add_local_awar_callbacks(AW_root *awr, AW_default, GEN_map_window *win)
GEN_graphic * get_graphic() const 
#define AWAR_GENMAP_AUTO_JUMP
static GEN_map_manager * get_map_manager()
static void GEN_open_mask_window(AW_window *aww, int id, GBDATA *gb_main)
static void GEN_insert_multi_submenu(AW_window_menu_modes *awm, const char *macro_prefix, const char *submenu_name, const char *hot_key, const char *help_file, void(*command)(AW_window *, GEN_PERFORM_MODE, GEN_command_mode_param *), GEN_command_mode_param *command_mode)
#define AWAR_LOCAL_GENE_LOCK(window_nr)
void GEN_popup_gene_infowindow(AW_root *aw_root, GBDATA *gb_main)
void AW_POPDOWN(AW_window *window)
#define AWAR_GENMAP_VERTICAL_FACTOR_Y
void AW_insert_common_property_menu_entries(AW_window_menu_modes *awmm)
static void GEN_set_display_style(AW_window *aww, GEN_DisplayStyle style)
void GBS_free_hash(GB_HASH *hs)
static void mark_organisms(AW_window *, MarkCommand mark, GBDATA *gb_main)
GBDATA * GEN_expect_gene_data(GBDATA *gb_species)
#define AWAR_GENMAP_ARROW_SIZE
void GEN_refresh_all_windows()
#define AWAR_GENMAP_RADIAL_INSIDE
static void GEN_insert_extract_submenu(AW_window_menu_modes *awm, GBDATA *gb_main, const char *macro_prefix, const char *submenu_name, const char *hot_key, const char *help_file)
bool nameIsUnique(const char *short_name, GBDATA *gb_species_data)
DECLARE_CBTYPE_FVV_AND_BUILDERS(GenmapWindowCallback, void, GEN_map_window *)
#define AWAR_FOOTER_MAX_LEN
static void GEN_jump_cb_auto(AW_root *root, GEN_map_window *win, bool force_refresh, bool force_zoom_reset)
static void GEN_undo_cb(AW_window *, GB_UNDO_TYPE undo_type, GBDATA *gb_main)
string performmode_relative_id(const char *id, GEN_PERFORM_MODE pmode)
static void GEN_local_organism_or_gene_name_changed_cb(AW_root *awr, GEN_map_window *win)
GBDATA * get_gb_main() const 
static void GEN_mark_command(AW_window *, GEN_PERFORM_MODE perform_mode, GEN_command_mode_param *param)
static void with_all_mapped_windows(void(*cb)(GEN_map_window *))
static void do_mark_command_for_one_species(int imode, GBDATA *gb_species, AW_CL cl_user)
EG2PS_data(const char *ali_, GBDATA *gb_species_data_, long marked_genes_)
#define AWAR_PROTEIN_NAME
static void GEN_create_gene_species_submenu(AW_window_menu_modes *awm, GBDATA *gb_main, bool submenu)
#define DOWNCAST(totype, expr)
AW_awar * add_callback(const RootCallback &cb)
GB_ERROR GBT_add_alignment_changekeys(GBDATA *gb_main, const char *ali)
static void GEN_hide_command(AW_window *, GEN_PERFORM_MODE perform_mode, GEN_command_mode_param *param)
const GEN_root * get_gen_root() const 
void init(AW_root *root, GBDATA *gb_main)
#define AWAR_GENMAP_DISPLAY_TYPE(window_nr)
static long gen_count_marked_genes
const char * read_char_pntr() const 
#define AWAR_GENMAP_RADIAL_OUTSIDE
NOT4PERL GBDATA * GBT_add_data(GBDATA *species, const char *ali_name, const char *key, GB_TYPES type) __ATTR__DEPRECATED_TODO("better use GBT_create_sequence_data()")
void reinit_gen_root(AWT_canvas *scr, bool force_reinit)
const char * getKeyPath() const OVERRIDE
int create_mode(const char *pixmap, const char *help_text_, AW_active mask, const WindowCallback &cb)
GB_ERROR GB_await_error()
static GB_ERROR GEN_species_add_entry(GBDATA *gb_pseudo, const char *key, const char *value)
GB_HASH * GEN_create_pseudo_species_hash(GBDATA *gb_main, long additionalSize)
static AW_root * SINGLETON
GBDATA * GEN_first_pseudo_species(GBDATA *gb_main)
WindowCallback makeHelpCallback(const char *helpfile)
#define MODE_TEXT_STANDARD_ZOOMMODE()
void set_display_style(GEN_DisplayStyle type)
GB_TYPES GB_read_type(GBDATA *gbd)
static AW_window * create_colorize_organisms_window(AW_root *aw_root, GBDATA *gb_main)
static void GEN_gene_container_cb_installer(CbInstallMode install, AWT_canvas *gmw, GEN_graphic *gg)
static void mark_gene_species_of_marked_genes(AW_window *, GBDATA *gb_main)
static GEN_unique_param * get(GBDATA *gb_main_, AW_CL unique_)
GBDATA * GB_create(GBDATA *father, const char *key, GB_TYPES type)
AW_awar * awar_float(const char *var_name, float default_value=0.0, AW_default default_file=AW_ROOT_DEFAULT)
#define AWAR_LOCAL_ORGANISM_LOCK(window_nr)
#define MODE_TEXT_1BUTTON(modeName, leftInfo)
void AW_save_properties(AW_window *aw)
void create_menu(const char *name, const char *mnemonic, AW_active mask=AWM_ALL)
gene_container_changed_cb_data(AWT_canvas *canvas_, GEN_graphic *graphic_, GBDATA *gb_gene_data_)
void help_text(const char *id)
GBDATA * GEN_next_marked_organism(GBDATA *gb_organism)
static void GEN_create_genemap_local_awars(AW_root *aw_root, AW_default, int window_nr)
static void error(const char *msg)
static void GEN_display_param_changed_cb(AW_root *, bool zoom_reset, int display_type_mask)
GBDATA * GB_get_root(GBDATA *gbd)
static GB_ERROR gene_extract_handler(const char *ali, GEN_extract_mode_param *param)
size_t get_self_awar_content_length() const OVERRIDE
AW_window * AW_preset_window(AW_root *root)
GBDATA * get_gb_main() const 
#define AWAR_EXPERIMENT_NAME
static const char * GEN_PERFORM_MODE_id[GEN_PERFORM_MODES]
#define AWAR_SPECIES_NAME
GBDATA * GEN_next_organism(GBDATA *gb_organism)
#define SRT_AUTOCORRECT_ALINAME
#define AWAR_LOCAL_ORGANISM_NAME(window_nr)
int GB_read_flag(GBDATA *gbd)
#define AWAR_GENMAP_SHOW_ALL_NDS
GBDATA * GBT_find_species_rel_species_data(GBDATA *gb_species_data, const char *name)
char * read_string() const 
static WindowCallback simple(void(*root_cb)(AW_root *, T), T t)
AW_awar * awar(const char *awar)
void insert_sub_menu(const char *name, const char *mnemonic, AW_active mask=AWM_ALL)
const char * no_mode_text_defined()
static void GEN_perform_command(GBDATA *gb_main, GEN_PERFORM_MODE pmode, void(*do_command)(int cmode, GBDATA *gb_species, AW_CL cl_user), int mode, AW_CL cl_user)
AW_window * GEN_create_gene_query_window(AW_root *aw_root, GBDATA *gb_main)
char * GBT_read_gene_sequence(GBDATA *gb_gene, bool use_revComplement, char partSeparator)
#define CHANGE_KEY_PATH_GENES
static void GEN_create_genemap_global_awars(AW_root *aw_root, AW_default def, GBDATA *gb_main)
static void GEN_gene_container_changed_cb(GBDATA *, gene_container_changed_cb_data *cb_data)
static AW_window_menu_modes_opengl * awm
GBDATA * GEN_next_pseudo_species(GBDATA *gb_species)
#define AWAR_COMBINED_GENE_NAME
static void GEN_map_window_refresh_if_display_type(GEN_map_window *win, bool zoom_reset, int display_type_mask)
const char * get_self_awar() const OVERRIDE
GB_ERROR GB_undo(GBDATA *gb_main, GB_UNDO_TYPE type) __ATTR__USERESULT
static GEN_item_type_species_selector item_type_gene
void set_info_area_height(int height)
GB_ERROR GB_export_errorf(const char *templat,...)
#define AWAR_GENMAP_BOOK_LINE_HEIGHT
AW_window * create_colorize_items_window(AW_root *aw_root, GBDATA *gb_main, ItemSelector &sel)
AW_device * get_device() const 
static void mark_organisms_with_marked_genes(AW_window *, GBDATA *gb_main)
void set_mode(AWT_COMMAND_MODE mo)
static GEN_command_mode_param * get(GBDATA *gb_main_, AW_CL command_mode_)
AW_awar * awar_int(const char *var_name, long default_value=0, AW_default default_file=AW_ROOT_DEFAULT)
void auto_space(int xspace, int yspace)
void AW_help_entry_pressed(AW_window *aww)
void GB_write_flag(GBDATA *gbd, long flag)
static void gene_extract_cb(AW_window *, GEN_extract_mode_param *param)
#define ALL_DISPLAY_TYPES
static AW_repeated_question * ask_to_overwrite_alignment
AW_gc_manager * gc_manager
AW_window * GEN_open_nds_window(AW_root *aw_root, GBDATA *gb_main)
const AW::Rectangle & get_selected_range() const 
static void initialize(AW_root *aw_root_, GBDATA *gb_main_)
int GB_read_byte(GBDATA *gbd)
AW_awar * map(const char *awarn)
#define AWAR_GENMAP_BOOK_WIDTH_FACTOR
GB_ERROR GB_write_byte(GBDATA *gbd, int i)
void GB_remove_callback(GBDATA *gbd, GB_CB_TYPE type, const DatabaseCallback &dbcb)
static void GEN_NDS_changed(GBDATA *gb_viewkey)
#define assert_no_auto_refresh_for(CANVAS)
static void GEN_mode_event(AW_window *aws, GEN_map_window *win, AWT_COMMAND_MODE mode)
static bool initialized()
#define AWAR_GENMAP_BOOK_LINE_SPACE
static ARB_init_perl_interface init
void add_name(const char *name)
uint32_t GBS_checksum(const char *seq, int ignore_case, const char *exclude)
GEN_DisplayStyle get_display_style() const 
void aw_message(const char *msg)
static AW_window * GEN_create_map(AW_root *aw_root, GEN_create_map_param *param)
void GEN_make_node_text_init(GBDATA *gb_main)
static void GEN_add_global_awar_callbacks(AW_root *awr)
GBDATA * GEN_first_gene(GBDATA *gb_species)
GBDATA * GBT_find_or_create_species(GBDATA *gb_main, const char *name, bool markCreated)
static void with_all_mapped_windows(const GenmapWindowCallback &gwcb)
static const char * readACC(GBDATA *gb_species_data, const char *name)
GBDATA * GBT_find_species(GBDATA *gb_main, const char *name)
GB_HASH * GBT_create_organism_hash(GBDATA *gb_main)
#define DISPLAY_TYPE_BIT(disp_type)
AWT_canvas * get_canvas() const 
GB_ERROR write_string(const char *aw_string)
char * GBT_get_default_alignment(GBDATA *gb_main)
const char * local_id(const char *id) const 
static void GEN_map_window_refresh(GEN_map_window *win)
GB_transaction ta(gb_var)
void callback(const WindowCallback &cb)
GB_CSTR GB_read_char_pntr(GBDATA *gbd)
AW_awar * awar_string(const char *var_name, const char *default_value="", AW_default default_file=AW_ROOT_DEFAULT)
static void GEN_insert_mark_submenu(AW_window_menu_modes *awm, GBDATA *gb_main, const char *macro_prefix, const char *submenu_name, const char *hot_key, const char *help_file, GEN_MARK_MODE mark_mode)
GBDATA * GEN_first_marked_organism(GBDATA *gb_main)
GBDATA * GEN_first_organism(GBDATA *gb_main)
GB_CSTR GBT_get_name_or_description(GBDATA *gb_item)
static void mark_gene_species_using_current_alignment(AW_window *, GBDATA *gb_main)
void shadow_width(int shadow_thickness)
static void reinit_NDS_4_window(GEN_map_window *win)
void GEN_create_genes_submenu(AW_window_menu_modes *awm, GBDATA *gb_main, bool for_ARB_NTREE)
static void GEN_update_unlocked_organism_and_gene_awars(GEN_map_window *win, const char *organismName, const char *geneName)
static void mark_genes_of_marked_gene_species(AW_window *, GBDATA *gb_main)
const char * GBT_read_char_pntr(GBDATA *gb_container, const char *fieldpath)
static void do_hide_command_for_one_species(int imode, GBDATA *gb_species, AW_CL)
int GEN_find_windowNr_for(GEN_graphic *wanted_graphic)
GB_ERROR write_int(long aw_int)
GB_ERROR AWT_initialize_input_mask(AW_root *root, GBDATA *gb_main, const awt_item_type_selector *sel, const char *mask_name, bool localMask)
GBDATA * GB_entry(GBDATA *father, const char *key)
static void GEN_create_organism_submenu(AW_window_menu_modes *awm, GBDATA *gb_main, bool submenu)
char * GBS_global_string_copy(const char *templat,...)
GBDATA * GEN_find_pseudo_species(GBDATA *gb_main, const char *organism_name, const char *gene_name, const GB_HASH *pseudo_hash)
GBDATA * GEN_find_origin_gene(GBDATA *gb_pseudo, const GB_HASH *organism_hash)
void create_button(const char *macro_name, AW_label label, const char *mnemonic=NULp, const char *color=NULp)
#define AWAR_GENMAP_VERTICAL_FACTOR_X
void AWT_activate_prompt(const char *title, const char *prompt, const char *defaultResult, const char *button, const ResultHandler &handle_result, const char *helpfile, const char *srt)
GEN_map_window * get_map_window(int nr)
GBDATA * GBT_get_species_data(GBDATA *gb_main)