1
#include "GDE_extglob.h"
4
#include <aw_window.hxx>
9
8
#include <aw_root.hxx>
10
#include <aw_device.hxx>
11
#include <aw_window.hxx>
9
#include <aw_awar_defs.hxx>
13
10
#include <awt_sel_boxes.hxx>
18
#include "GDE_extglob.h"
19
#include "GDE_awars.h"
21
adfiltercbstruct *agde_filtercd = 0;
23
Gmenu menu[GDEMAXMENU];
24
int num_menus = 0,repeat_cnt = 0;
25
//Frame frame,pframe,infoframe;
26
//Panel popup,infopanel;
27
//Panel_item left_foot,right_foot;
28
//Canvas EditCan,EditNameCan;
30
GmenuItem *current_item;
31
NA_Alignment *DataSet = NULL;
33
char GDEBLANK[] = "\0";
11
#include <awt_filter.hxx>
16
// AISC_MKPT_PROMOTE:#ifndef GDE_MENU_H
17
// AISC_MKPT_PROMOTE:#include "GDE_menu.h"
18
// AISC_MKPT_PROMOTE:#endif
20
adfiltercbstruct *agde_filter = 0;
22
Gmenu menu[GDEMAXMENU];
24
NA_Alignment *DataSet = NULL;
26
static char GDEBLANK[] = "\0";
35
28
#define SLIDERWIDTH 5 // input field width for numbers
37
static void GDE_showhelp_cb(AW_window *aw, GmenuItem *gmenuitem, AW_CL /*cd*/) {
38
const char *help_file = gmenuitem->help;
40
char *agde_help_file = GBS_string_eval(help_file, "*.help=agde_*1.hlp", 0);
41
AW_POPUP_HELP(aw, (AW_CL)agde_help_file);
33
gde_iteminfo(GmenuItem *item_, int idx_) : item(item_), idx(idx_) {}
36
static void GDE_showhelp_cb(AW_window *aw, GmenuItem *gmenuitem, AW_CL /* cd */) {
37
if (gmenuitem->help) {
38
AW_help_popup(aw, gmenuitem->help);
45
41
aw_message("Sorry - no help available (please report to devel@arb-home.de)");
49
char *GDE_makeawarname(GmenuItem *gmenuitem,long i)
51
char name[GB_KEY_LEN_MAX*4+5];
45
static char *GDE_makeawarname_in(GmenuItem *gmenuitem, long i, const char *awar_root) {
52
46
char *gmenu_label = GBS_string_2_key(gmenuitem->parent_menu->label);
53
47
char *gmenuitem_label = GBS_string_2_key(gmenuitem->label);
54
48
char *arg = GBS_string_2_key(gmenuitem->arg[i].symbol);
56
sprintf(name,"gde/%s/%s/%s", gmenu_label, gmenuitem_label, arg);
50
char *name = GBS_global_string_copy("%s/%s/%s/%s", awar_root, gmenu_label, gmenuitem_label, arg);
59
53
free(gmenuitem_label);
59
char *GDE_makeawarname(GmenuItem *gmenuitem, long i) { return GDE_makeawarname_in(gmenuitem, i, "gde"); }
60
char *GDE_maketmpawarname(GmenuItem *gmenuitem, long i) { return GDE_makeawarname_in(gmenuitem, i, "tmp/gde"); }
65
62
static void GDE_slide_awar_int_cb(AW_window *aws, AW_CL cl_awar_name, AW_CL cd_diff)
67
64
int diff = (int)cd_diff;
84
81
awar->write_float(new_val);
87
static void GDE_create_infieldwithpm(AW_window *aws,char *newawar,long width)
89
char *awar=strdup(newawar);
90
aws->create_input_field(newawar,(int)width);
84
static void GDE_create_infieldwithpm(AW_window *aws, char *newawar, long width) {
85
aws->create_input_field(newawar, (int)width);
91
86
if (aws->get_root()->awar(newawar)->get_type() == AW_INT) {
92
87
aws->button_length(3);
93
aws->callback(GDE_slide_awar_int_cb,(AW_CL)awar,-1);
94
aws->create_button(0,"-","-");
95
aws->callback(GDE_slide_awar_int_cb,(AW_CL)awar,+1);
96
aws->create_button(0,"+","+");
88
char *awar = strdup(newawar);
89
aws->callback(GDE_slide_awar_int_cb, (AW_CL)awar, -1); aws->create_button(0, "-", "-");
90
aws->callback(GDE_slide_awar_int_cb, (AW_CL)awar, + 1); aws->create_button(0, "+", "+");
98
92
else if (aws->get_root()->awar(newawar)->get_type() == AW_FLOAT) {
99
93
aws->button_length(3);
100
aws->callback(GDE_slide_awar_float_cb,(AW_CL)awar,(AW_CL)new double(-0.1));
101
aws->create_button(0,"-","-");
102
aws->callback(GDE_slide_awar_float_cb,(AW_CL)awar,(AW_CL)new double(+0.1));
103
aws->create_button(0,"+","+");
94
char *awar = strdup(newawar);
95
aws->callback(GDE_slide_awar_float_cb, (AW_CL)awar, (AW_CL)new double(-0.1)); aws->create_button(0, "-", "-");
96
aws->callback(GDE_slide_awar_float_cb, (AW_CL)awar, (AW_CL)new double(+0.1)); aws->create_button(0, "+", "+");
107
static char *gde_filter_weights(GBDATA *gb_sai,AW_CL ){
100
static char *gde_filter_weights(GBDATA *gb_sai, AW_CL) {
108
101
char *ali_name = GBT_get_default_alignment(GB_get_root(gb_sai));
109
GBDATA *gb_ali = GB_entry(gb_sai,ali_name);
102
GBDATA *gb_ali = GB_entry(gb_sai, ali_name);
110
103
char *result = 0;
131
static AW_window *GDE_menuitem_cb(AW_root *aw_root,GmenuItem *gmenuitem) {
122
static AW_window *GDE_create_filename_browser_window(AW_root *aw_root, const char *awar_prefix, const char *title) {
123
AW_window_simple *aws = new AW_window_simple;
126
char *wid = GBS_string_2_key(awar_prefix);
127
aws->init(aw_root, wid, title);
130
aws->load_xfig("sel_box.fig");
133
aws->callback((AW_CB0) AW_POPDOWN);
134
aws->create_button("CLOSE", "CLOSE", "C");
136
AW_create_standard_fileselection(aws, awar_prefix);
141
static void GDE_popup_filename_browser(AW_window *aw, AW_CL cl_iteminfo, AW_CL cl_title) {
142
gde_iteminfo *info = (gde_iteminfo*)cl_iteminfo;
143
GmenuItem *gmenuitem = info->item;
145
char *base_awar = GDE_maketmpawarname(gmenuitem, idx);
147
static GB_HASH *popup_hash = NULL;
148
if (!popup_hash) popup_hash = GBS_create_hash(20, GB_MIND_CASE);
150
AW_window *aw_browser = (AW_window*)GBS_read_hash(popup_hash, base_awar);
152
const char *title = (const char *)cl_title;
153
aw_browser = GDE_create_filename_browser_window(aw->get_root(), base_awar, title);
154
GBS_write_hash(popup_hash, base_awar, (long)aw_browser);
156
aw_browser->activate();
160
static AW_window *GDE_menuitem_cb(AW_root *aw_root, GmenuItem *gmenuitem) {
132
161
#define BUFSIZE 200
133
162
char bf[BUFSIZE+1];
134
#if defined(ASSERTION_USED)
136
#endif // ASSERTION_USED
137
sprintf(bf,"GDE / %s / %s",gmenuitem->parent_menu->label,gmenuitem->label);
139
gb_assert(printed<=BUFSIZE);
163
IF_ASSERTION_USED(int printed =)
164
sprintf(bf, "GDE / %s / %s", gmenuitem->parent_menu->label, gmenuitem->label);
166
gde_assert(printed<=BUFSIZE);
140
167
char seqtype = gmenuitem->seqtype;
142
169
if (gmenuitem->aws == NULL) {
143
170
AW_window_simple *aws = new AW_window_simple;
144
aws->init(aw_root,bf,bf);
171
aws->init(aw_root, bf, bf);
146
switch (gde_cgss.wt) {
147
case CGSS_WT_DEFAULT: {
173
switch (db_access.window_type) {
174
case GDE_WINDOWTYPE_DEFAULT: {
148
175
if (seqtype == '-') aws->load_xfig("gdeitem_simple.fig");
149
176
else aws->load_xfig("gdeitem.fig");
153
gde_assert(seqtype != '-');
154
aws->load_xfig("gde2item.fig");
179
case GDE_WINDOWTYPE_EDIT4:
157
180
gde_assert(seqtype != '-');
158
181
aws->load_xfig("gde3item.fig");
164
aws->set_window_size(1000,2000);
185
aws->set_window_size(1000, 2000);
165
186
aws->button_length(10);
167
aws->auto_space(0,10);
188
aws->auto_space(0, 10);
170
aws->callback((AW_CB2)GDE_showhelp_cb,(AW_CL)gmenuitem,0);
171
aws->create_button("GDE_HELP","HELP...","H");
191
aws->callback((AW_CB2)GDE_showhelp_cb, (AW_CL)gmenuitem, 0);
192
aws->create_button("GDE_HELP", "HELP", "H");
173
194
aws->at("start");
174
aws->callback((AW_CB2)GDE_startaction_cb,(AW_CL)gmenuitem,0);
175
aws->create_button("GO", "GO","O");
195
aws->callback((AW_CB2)GDE_startaction_cb, (AW_CL)gmenuitem, 0);
196
aws->create_button("GO", "GO", "O");
177
198
aws->at("cancel");
178
199
aws->callback((AW_CB0)AW_POPDOWN);
179
aws->create_button("CLOSE", "CLOSE","C");
200
aws->create_button("CLOSE", "CLOSE", "C");
182
203
if (gmenuitem->numinputs>0) {
183
switch (gde_cgss.wt) {
184
case CGSS_WT_DEFAULT: {
204
switch (db_access.window_type) {
205
case GDE_WINDOWTYPE_DEFAULT: {
185
206
if (seqtype != '-') { // '-' means "skip sequence export"
186
207
aws->at("which_alignment");
187
208
const char *ali_filter = seqtype == 'A' ? "pro=:ami=" : (seqtype == 'N' ? "dna=:rna=" : "*=");
188
awt_create_selection_list_on_ad(GLOBAL_gb_main, (AW_window *)aws, AWAR_GDE_ALIGNMENT, ali_filter);
209
awt_create_selection_list_on_alignments(db_access.gb_main, (AW_window *)aws, AWAR_GDE_ALIGNMENT, ali_filter);
190
aws->at( "which_species" );
211
aws->at("which_species");
191
212
aws->create_toggle_field(AWAR_GDE_SPECIES);
192
aws->insert_toggle( "all", "a", 0 );
193
aws->insert_default_toggle( "marked", "m", 1 );
213
aws->insert_toggle("all", "a", 0);
214
aws->insert_default_toggle("marked", "m", 1);
194
215
aws->update_toggle_field();
196
217
if (seqtype != 'N') {
273
287
aws->label_length(labellength);
274
aws->auto_space(0,0);
276
for (i=0;i<gmenuitem->numargs;i++) {
277
GmenuItemArg itemarg=gmenuitem->arg[i];
279
if(itemarg.type==SLIDER) {
280
char *newawar=GDE_makeawarname(gmenuitem,i);
281
if ( int(gmenuitem->arg[i].fvalue) == gmenuitem->arg[i].fvalue &&
282
int(gmenuitem->arg[i].min) == gmenuitem->arg[i].min &&
283
int(gmenuitem->arg[i].max) == gmenuitem->arg[i].max){
284
aw_root->awar_int(newawar,(long)gmenuitem->arg[i].fvalue,AW_ROOT_DEFAULT);
286
aw_root->awar_float(newawar,gmenuitem->arg[i].fvalue,AW_ROOT_DEFAULT);
288
aw_root->awar(newawar)->set_minmax(gmenuitem->arg[i].min,gmenuitem->arg[i].max);
289
aws->label(gmenuitem->arg[i].label);
290
GDE_create_infieldwithpm(aws,newawar,SLIDERWIDTH);
288
aws->auto_space(0, 0);
290
for (i=0; i<gmenuitem->numargs; i++) {
291
GmenuItemArg itemarg = gmenuitem->arg[i];
293
if (itemarg.type==SLIDER) {
294
char *newawar=GDE_makeawarname(gmenuitem, i);
295
if (int(itemarg.fvalue) == itemarg.fvalue &&
296
int(itemarg.min) == itemarg.min &&
297
int(itemarg.max) == itemarg.max) {
298
aw_root->awar_int(newawar, (long)itemarg.fvalue, AW_ROOT_DEFAULT);
301
aw_root->awar_float(newawar, itemarg.fvalue, AW_ROOT_DEFAULT);
303
aw_root->awar(newawar)->set_minmax(itemarg.min, itemarg.max);
304
aws->label(itemarg.label);
305
aws->sens_mask(itemarg.active_mask);
306
GDE_create_infieldwithpm(aws, newawar, SLIDERWIDTH);
291
307
// maybe bound checking //
294
else if(itemarg.type==CHOOSER) {
310
else if (itemarg.type==CHOOSER) {
295
311
char *defopt = itemarg.choice[0].method;
296
char *newawar = GDE_makeawarname(gmenuitem,i);
297
AW_awar *curr_awar = aw_root->awar_string(newawar,defopt,AW_ROOT_DEFAULT);
312
char *newawar = GDE_makeawarname(gmenuitem, i);
313
AW_awar *curr_awar = aw_root->awar_string(newawar, defopt, AW_ROOT_DEFAULT);
298
314
char *curr_value = curr_awar->read_string();
299
315
bool curr_value_legal = false;
301
aws->label(gmenuitem->arg[i].label);
302
if ((strcasecmp(itemarg.choice[0].label,"no") == 0) ||
303
(strcasecmp(itemarg.choice[0].label,"yes") == 0))
317
aws->label(itemarg.label);
318
aws->sens_mask(itemarg.active_mask);
319
if ((strcasecmp(itemarg.choice[0].label, "no") == 0) ||
320
(strcasecmp(itemarg.choice[0].label, "yes") == 0))
305
aws->create_toggle_field(newawar,1);
322
aws->create_toggle_field(newawar, 1);
308
325
aws->create_toggle_field(newawar);
311
for(long j=0;j<itemarg.numchoices;j++) {
328
for (long j=0; j<itemarg.numchoices; j++) {
312
329
if (strcmp(itemarg.choice[j].method, curr_value) == 0) curr_value_legal = true;
315
aws->insert_default_toggle(itemarg.choice[j].label,"1", itemarg.choice[j].method);
332
aws->insert_default_toggle(itemarg.choice[j].label, "1", itemarg.choice[j].method);
318
aws->insert_toggle(itemarg.choice[j].label,"1", itemarg.choice[j].method);
335
aws->insert_toggle(itemarg.choice[j].label, "1", itemarg.choice[j].method);
321
338
if (!curr_value_legal) curr_awar->write_string(defopt); // if saved value no longer occurs in choice -> overwrite with default
323
340
aws->update_toggle_field();
326
else if(itemarg.type==CHOICE_MENU) {
343
else if (itemarg.type==CHOICE_MENU) {
327
344
char *defopt = itemarg.choice[itemarg.ivalue].method;
328
char *newawar = GDE_makeawarname(gmenuitem,i);
329
AW_awar *curr_awar = aw_root->awar_string(newawar,defopt,AW_ROOT_DEFAULT);
345
char *newawar = GDE_makeawarname(gmenuitem, i);
346
AW_awar *curr_awar = aw_root->awar_string(newawar, defopt, AW_ROOT_DEFAULT);
330
347
char *curr_value = curr_awar->read_string();
331
348
bool curr_value_legal = false;
333
aws->label(gmenuitem->arg[i].label);
334
aws->create_option_menu(newawar,NULL,"");
350
if (itemarg.label[0]) aws->label(itemarg.label);
351
aws->sens_mask(itemarg.active_mask);
352
aws->create_option_menu(newawar, true);
336
for(long j=0;j<itemarg.numchoices;j++) {
354
for (long j=0; j<itemarg.numchoices; j++) {
337
355
if (strcmp(itemarg.choice[j].method, curr_value) == 0) curr_value_legal = true;
338
aws->insert_option(itemarg.choice[j].label,"1", itemarg.choice[j].method);
356
aws->insert_option(itemarg.choice[j].label, "1", itemarg.choice[j].method);
340
358
if (!curr_value_legal) curr_awar->write_string(defopt); // if saved value no longer occurs in choice -> overwrite with default
341
359
free(curr_value);
342
360
aws->update_option_menu();
345
else if(itemarg.type==TEXTFIELD) {
363
else if (itemarg.type==TEXTFIELD) {
346
364
char *defopt = itemarg.textvalue;
347
char *newawar = GDE_makeawarname(gmenuitem,i);
348
aw_root->awar_string(newawar,defopt,AW_ROOT_DEFAULT);
349
aws->label(gmenuitem->arg[i].label);
350
aws->create_input_field(newawar,itemarg.textwidth/*TEXTFIELDWIDTH*/);
353
else if(itemarg.type==CHOICE_TREE) {
354
char *defopt=itemarg.textvalue;
355
char *newawar=GDE_makeawarname(gmenuitem,i);
356
aw_root->awar_string(newawar,defopt,AW_ROOT_DEFAULT);
357
aws->label(gmenuitem->arg[i].label);
358
awt_create_selection_list_on_trees(GLOBAL_gb_main,aws,newawar);
361
else if(itemarg.type==CHOICE_SAI) {
362
char *defopt=itemarg.textvalue;
363
char *newawar=GDE_makeawarname(gmenuitem,i);
364
aw_root->awar_string(newawar,defopt,AW_ROOT_DEFAULT);
365
aws->label(gmenuitem->arg[i].label);
366
awt_create_selection_list_on_extendeds(GLOBAL_gb_main,aws,newawar);
369
else if(itemarg.type==CHOICE_WEIGHTS) {
370
char *defopt=itemarg.textvalue;
371
char *newawar=GDE_makeawarname(gmenuitem,i);
372
aw_root->awar_string(newawar,defopt,AW_ROOT_DEFAULT);
373
aws->label(gmenuitem->arg[i].label);
374
void *id = awt_create_selection_list_on_extendeds(GLOBAL_gb_main,aws,newawar,gde_filter_weights);
376
aw_root->awar(AWAR_GDE_ALIGNMENT)->add_callback((AW_RCB1)awt_create_selection_list_on_extendeds_update,(AW_CL)id);
365
char *newawar = GDE_makeawarname(gmenuitem, i);
366
aw_root->awar_string(newawar, defopt, AW_ROOT_DEFAULT);
367
aws->label(itemarg.label);
368
aws->sens_mask(itemarg.active_mask);
369
aws->create_input_field(newawar, itemarg.textwidth); // TEXTFIELDWIDTH
372
else if (itemarg.type==FILE_SELECTOR) {
373
char *base_awar = GDE_maketmpawarname(gmenuitem, i);
374
char *name_awar = GBS_global_string_copy("%s/file_name", base_awar);
376
AW_create_fileselection_awars(aw_root, base_awar, "", itemarg.textvalue, "");
378
aws->label(itemarg.label);
379
aws->sens_mask(itemarg.active_mask);
380
aws->create_input_field(name_awar, 40);
381
aws->callback(GDE_popup_filename_browser, (AW_CL)new gde_iteminfo(gmenuitem, i), (AW_CL)strdup(itemarg.label));
382
aws->create_button("", "Browse");
387
else if (itemarg.type==CHOICE_TREE) {
388
char *defopt=itemarg.textvalue;
389
char *newawar=GDE_makeawarname(gmenuitem, i);
390
aw_root->awar_string(newawar, defopt, AW_ROOT_DEFAULT);
391
aws->sens_mask(itemarg.active_mask);
392
if (itemarg.label[0]) aws->create_button(NULL, itemarg.label);
393
awt_create_selection_list_on_trees(db_access.gb_main, aws, newawar, true);
396
else if (itemarg.type==CHOICE_SAI) {
397
char *defopt=itemarg.textvalue;
398
char *newawar=GDE_makeawarname(gmenuitem, i);
399
aw_root->awar_string(newawar, defopt, AW_ROOT_DEFAULT);
400
aws->sens_mask(itemarg.active_mask);
401
if (itemarg.label[0]) aws->create_button(NULL, itemarg.label);
402
awt_create_selection_list_on_sai(db_access.gb_main, aws, newawar, true);
405
else if (itemarg.type==CHOICE_WEIGHTS) {
406
char *defopt=itemarg.textvalue;
407
char *newawar=GDE_makeawarname(gmenuitem, i);
408
aw_root->awar_string(newawar, defopt, AW_ROOT_DEFAULT);
409
aws->sens_mask(itemarg.active_mask);
410
if (itemarg.label[0]) aws->create_button(NULL, itemarg.label);
411
AWT_sai_selection *id = awt_create_selection_list_on_sai(db_access.gb_main, aws, newawar, true, gde_filter_weights);
413
aw_root->awar(AWAR_GDE_ALIGNMENT)->add_callback(makeRootCallback(awt_selection_list_on_sai_update_cb, id));
379
416
aws->at_newline();
380
// if((gmenuitem->numargs<8) || GDE_odd(i)) aws->at_newline();
381
// else aws->at_shift( 50,0 );
383
418
aws->at_newline();
384
419
aws->window_fit();
395
void GDE_load_menu(AW_window *awm, AW_active mask, const char *menulabel, const char *menuitemlabel) {
430
void GDE_load_menu(AW_window *awm, AW_active /*mask*/, const char *menulabel) {
396
431
// Load GDE menu items.
398
433
// If 'menulabel' == NULL -> load all menus
399
434
// Else -> load specified menu
401
// If 'menuitemlabel' == NULL -> load complete menu(s)
402
// Else -> load only specific menu topic
406
long nitem,num_items;
409
bool menuloaded = false;
410
bool itemloaded = false;
436
// Always loads complete menu(s).
438
gde_assert(db_access.gb_main); // forgot to call GDE_create_var() ?
441
bool menuloaded = false;
442
bool itemloaded = false;
412
444
for (long nmenu = 0; nmenu<num_menus; nmenu++) {
414
446
const char *menuname = menu[nmenu].label;
416
if (strcmp(menulabel,menuname)) {
448
if (strcmp(menulabel, menuname)) {
421
hotkey[0] = menu[nmenu].meta;
422
awm->insert_sub_menu(menuname, hotkey);
453
hotkey[0] = menu[nmenu].meta;
454
awm->insert_sub_menu(menuname, hotkey, menu[nmenu].active_mask);
426
458
menuloaded = true;
428
num_items = menu[nmenu].numitems;
429
for (nitem=0; nitem<num_items;nitem++) {
430
menuitem=&menu[nmenu].item[nitem];
431
if (!menuitemlabel || strcmp(menuitem->label,menuitemlabel) == 0) {
433
if (menuitem->help) {
434
sprintf(buffer,"GDEHELP/%s",menuitem->help);
435
help = strdup(buffer);
440
hotkey[0] = menuitem->meta;
441
awm->insert_menu_topic(0,menuitem->label,hotkey,
443
AW_POPUP, (AW_CL)GDE_menuitem_cb, (AW_CL)menuitem);
460
long num_items = menu[nmenu].numitems;
461
for (long nitem=0; nitem<num_items; nitem++) {
462
GmenuItem *menuitem=&menu[nmenu].item[nitem];
464
gde_assert(!menuitem->help || ARB_strBeginsWith(menuitem->help, "agde_"));
465
hotkey[0] = menuitem->meta;
466
awm->insert_menu_topic(menuitem->label, menuitem->label, hotkey,
467
menuitem->help, menuitem->active_mask,
468
AW_POPUP, (AW_CL)GDE_menuitem_cb, (AW_CL)menuitem);
447
472
awm->close_sub_menu();
451
476
if (!menuloaded && menulabel) {
452
477
fprintf(stderr, "GDE-Warning: Could not find requested menu '%s'\n", menulabel);
454
if (!itemloaded && menuitemlabel) {
456
fprintf(stderr, "GDE-Warning: Could not find requested topic '%s' in menu '%s'\n", menuitemlabel, menulabel);
459
fprintf(stderr, "GDE-Warning: Could not find requested topic '%s'\n", menuitemlabel);
464
struct choose_get_sequence_struct gde_cgss = { 0, CGSS_WT_DEFAULT, 0 };
466
void create_gde_var(AW_root *aw_root, AW_default aw_def,
467
char *(*get_sequences)(void *THIS, GBDATA **&the_species,
469
uchar **&the_sequences,
470
long &numberspecies,long &maxalignlen),
471
gde_cgss_window_type wt,
474
gde_cgss.get_sequences= get_sequences;
478
// aw_root->awar_string("tmp/gde/helptext", "help", aw_def); // only occurrence
481
struct gde_database_access db_access = { NULL, GDE_WINDOWTYPE_DEFAULT, 0, NULL};
483
GB_ERROR GDE_create_var(AW_root *aw_root, AW_default aw_def, GBDATA *gb_main, GDE_get_sequences_cb get_sequences, gde_window_type window_type, AW_CL client_data) {
484
db_access.get_sequences = get_sequences;
485
db_access.window_type = window_type;
486
db_access.client_data = client_data;
487
db_access.gb_main = gb_main;
479
489
aw_root->awar_string(AWAR_GDE_ALIGNMENT, "", aw_def);
484
aw_root->awar_int("gde/top_area_kons",1,aw_def);
485
aw_root->awar_int("gde/top_area_remark",1,aw_def);
486
aw_root->awar_int("gde/middle_area_kons",1,aw_def);
487
aw_root->awar_int("gde/middle_area_remark",1,aw_def);
489
aw_root->awar_int("gde/top_area",1,aw_def);
490
aw_root->awar_int("gde/top_area_sai",1,aw_def);
491
aw_root->awar_int("gde/top_area_helix",1,aw_def);
492
aw_root->awar_int("gde/middle_area",1,aw_def);
493
aw_root->awar_int("gde/middle_area_sai",1,aw_def);
494
aw_root->awar_int("gde/middle_area_helix",1,aw_def);
495
aw_root->awar_int("gde/bottom_area",1,aw_def);
496
aw_root->awar_int("gde/bottom_area_sai",1,aw_def);
497
aw_root->awar_int("gde/bottom_area_helix",1,aw_def);
491
switch (db_access.window_type) {
492
case GDE_WINDOWTYPE_EDIT4:
493
aw_root->awar_int("gde/top_area_kons", 1, aw_def);
494
aw_root->awar_int("gde/top_area_remark", 1, aw_def);
495
aw_root->awar_int("gde/middle_area_kons", 1, aw_def);
496
aw_root->awar_int("gde/middle_area_remark", 1, aw_def);
497
aw_root->awar_int("gde/top_area", 1, aw_def);
498
aw_root->awar_int("gde/top_area_sai", 1, aw_def);
499
aw_root->awar_int("gde/top_area_helix", 1, aw_def);
500
aw_root->awar_int("gde/middle_area", 1, aw_def);
501
aw_root->awar_int("gde/middle_area_sai", 1, aw_def);
502
aw_root->awar_int("gde/middle_area_helix", 1, aw_def);
503
aw_root->awar_int("gde/bottom_area", 1, aw_def);
504
aw_root->awar_int("gde/bottom_area_sai", 1, aw_def);
505
aw_root->awar_int("gde/bottom_area_helix", 1, aw_def);
507
case GDE_WINDOWTYPE_DEFAULT:
502
aw_root->awar_string("presets/use", "", GLOBAL_gb_main);
511
aw_root->awar_string(AWAR_DEFAULT_ALIGNMENT, "", db_access.gb_main);
504
513
aw_root->awar_string(AWAR_GDE_FILTER_NAME, "", aw_def);
505
514
aw_root->awar_string(AWAR_GDE_FILTER_FILTER, "", aw_def);