source: tags/arb_5.1/NTREE/ad_fields.cxx

Last change on this file was 5148, checked in by westram, 16 years ago
  • replaced global gb_main by GLOBAL_gb_main
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.8 KB
Line 
1#include <stdio.h>
2
3#include <aw_root.hxx>
4#include <aw_device.hxx>
5#include <aw_window.hxx>
6
7#include <arbdb.h>
8#include <arbdbt.h>
9#include <awt.hxx>
10
11extern GBDATA *GLOBAL_gb_main;
12
13void fields_vars_callback(AW_root *aw_root)
14{
15    GB_push_transaction(gb_main);
16    char    *use = aw_root->awar("tmp/fields/use")->read_string();
17    GBDATA *ali_cont = GBT_get_fields(gb_main,use);
18    if (!ali_cont) {
19        aw_root->awar("tmp/fields/fields_name")->unmap();
20        aw_root->awar("tmp/fields/fields_father")->unmap();
21        aw_root->awar("tmp/fields/fields_type")->unmap();
22        aw_root->awar("tmp/fields/fields_rem")->unmap();
23        aw_root->awar("tmp/fields/security")->unmap();
24    }else{
25
26        GBDATA *ali_name =  GB_search(ali_cont,"fields_name",   GB_STRING);
27        GBDATA *ali_father =    GB_search(ali_cont,"fields_father", GB_STRING);
28        GBDATA *ali_type =  GB_search(ali_cont,"fields_type",   GB_INT);
29        GBDATA *ali_security =  GB_search(ali_cont,"fields_write_security",GB_INT);
30        GBDATA *ali_rem =   GB_search(ali_cont,"fields_rem",    GB_STRING);
31
32        aw_root->awar("tmp/fields/fields_name")->map((void*)ali_name);
33        aw_root->awar("tmp/fields/fields_type")->map((void*)ali_type);
34        aw_root->awar("tmp/fields/fields_father")->map((void*)ali_father);
35        aw_root->awar("tmp/fields/fields_rem")->map((void*)ali_rem);
36        aw_root->awar("tmp/fields/security")->map((void*)ali_security);
37    }
38    GB_pop_transaction(gb_main);
39    free(use);
40}
41
42void create_fields_vars(AW_root *aw_root)
43{
44    GB_push_transaction(gb_main);
45
46
47    aw_root->awar_string("tmp/fields/use",         "", aw_def  );
48    aw_root->awar_string("tmp/fields/fields_name", "", aw_def  );
49    aw_root->awar_string("tmp/fields/fields_rem");
50    aw_root->awar_string("tmp/fields/fields_father", "", aw_def);
51    aw_root->awar_int   ("tmp/fields/fields_type",   "", aw_def);
52    aw_root->awar_int   ("tmp/fields/aligned",       0,  aw_def);
53    aw_root->awar_int   ("tmp/fields/security",      0,  aw_def);
54
55    aw_root->awar("tmp/fields/use")->add_callback( fields_vars_callback);
56    fields_vars_callback(aw_root);
57    GB_pop_transaction(gb_main);
58}
59
60AW_window *create_fields_window(AW_root *root,AW_default aw_def)
61{
62    AWUSE(aw_def);
63    create_fields_vars(root);
64    AW_window_simple *aws = new AW_window_simple;
65    aws->init( root, "INFO_OF_FIELD", "FIELDS INFORMATION", 100, 0 );
66    aws->load_xfig("ad_align.fig");
67
68    aws->callback( (AW_CB0)AW_POPDOWN);
69    aws->at("close");
70    aws->create_button("CLOSE","CLOSE","C");
71
72    aws->callback( AW_POPUP_HELP,(AW_CL)"ad_align.hlp");
73    aws->at("help");
74    aws->create_button("HELP","HELP","H");
75
76    aws->button_length(13);
77
78    aws->at("delete");
79    aws->callback(ad_al_delete_cb);
80    aws->create_button("DELETE","DELETE","D");
81
82    aws->at("rename");
83    aws->callback(AW_POPUP,(AW_CL)create_fields_rename_window,0);
84    aws->create_button("RENAME","RENAME","R");
85
86    aws->at("create");
87    aws->callback(AW_POPUP,(AW_CL)create_fields_create_window,0);
88    aws->create_button("CREATE","CREATE","N");
89
90    aws->at("copy");
91    aws->callback(AW_POPUP,(AW_CL)create_fields_copy_window,0);
92    aws->create_button("COPY","COPY","C");
93
94    aws->at("check_len");
95    aws->callback(ed_al_check_len_cb);
96    aws->create_button("CHECK_LEN","CHECK LEN","L");
97
98    aws->at("align");
99    aws->callback(ed_al_align_cb);
100    aws->create_button("FORMAT","FORMAT","F");
101
102    aws->at("list");
103    awt_create_selection_list_on_ad(gb_main,(AW_window *)aws,"tmp/fields/use","*=");
104
105    aws->at("aligned");
106    aws->create_option_menu("tmp/fields/aligned");
107    aws->callback(ed_al_check_len_cb);
108    aws->insert_default_option("not formatted","n",0);
109    aws->callback(ed_al_align_cb);
110    aws->insert_option("formatted","j",1);
111    aws->update_option_menu();
112
113    aws->at("len");
114    aws->create_input_field("tmp/fields/fields_len",5);
115
116    aws->at("type");
117    aws->create_option_menu("tmp/fields/fields_type");
118    aws->insert_option("dna","d","dna");
119    aws->insert_option("rna","r","rna");
120    aws->insert_option("pro","p","ami");
121    aws->insert_default_option("???","?","usr");
122    aws->update_option_menu();
123
124    aws->at("security");
125    aws->create_option_menu("tmp/fields/security");
126    aws->callback(ed_al_check_len_cb);
127    aws->insert_option("0","0",0);
128    aws->callback(ed_al_check_len_cb);
129    aws->insert_option("1","1",1);
130    aws->callback(ed_al_check_len_cb);
131    aws->insert_option("2","2",2);
132    aws->callback(ed_al_check_len_cb);
133    aws->insert_option("3","3",3);
134    aws->callback(ed_al_check_len_cb);
135    aws->insert_option("4","4",4);
136    aws->callback(ed_al_check_len_cb);
137    aws->insert_option("5","5",5);
138    aws->callback(ed_al_check_len_cb);
139    aws->insert_default_option("6","6",6);
140    aws->update_option_menu();
141
142    aws->at("rem");
143    aws->create_text_field("tmp/fields/fields_rem");
144
145
146    return (AW_window *)aws;
147}
Note: See TracBrowser for help on using the repository browser.