source: tags/initial/NTREE/ad_fields.cxx

Last change on this file was 2, checked in by oldcode, 23 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.5 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>
10extern GBDATA *gb_main;
11
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
60
61
62
63AW_window *create_fields_window(AW_root *root,AW_default aw_def)
64        {
65        AWUSE(aw_def);
66        create_fields_vars(root); 
67        AW_window_simple *aws = new AW_window_simple;
68        aws->init( root, "INFO_OF_FIELD", "FIELDS INFORMATION", 100, 0 );
69        aws->load_xfig("ad_align.fig");
70
71        aws->callback( (AW_CB0)AW_POPDOWN);
72        aws->at("close");
73        aws->create_button("CLOSE","CLOSE","C");                           
74
75        aws->callback( AW_POPUP_HELP,(AW_CL)"ad_align.hlp");
76        aws->at("help");
77        aws->create_button("HELP","HELP","H");                     
78
79        aws->button_length(13);
80
81        aws->at("delete");
82        aws->callback(ad_al_delete_cb);
83        aws->create_button("DELETE","DELETE","D");                         
84
85        aws->at("rename");
86        aws->callback(AW_POPUP,(AW_CL)create_fields_rename_window,0);
87        aws->create_button("RENAME","RENAME","R");                         
88
89        aws->at("create");
90        aws->callback(AW_POPUP,(AW_CL)create_fields_create_window,0);
91        aws->create_button("CREATE","CREATE","N");                         
92
93        aws->at("copy");
94        aws->callback(AW_POPUP,(AW_CL)create_fields_copy_window,0);
95        aws->create_button("COPY","COPY","C");                     
96
97        aws->at("check_len");
98        aws->callback(ed_al_check_len_cb);
99        aws->create_button("CHECK_LEN","CHECK LEN","L");                           
100
101        aws->at("align");
102        aws->callback(ed_al_align_cb);
103        aws->create_button("FORMAT","FORMAT","F");                         
104
105        aws->at("list");
106        awt_create_selection_list_on_ad(gb_main,(AW_window *)aws,"tmp/fields/use","*=");
107
108        aws->at("aligned");
109        aws->create_option_menu("tmp/fields/aligned");
110        aws->callback(ed_al_check_len_cb);
111        aws->insert_default_option("not formatted","n",0);
112        aws->callback(ed_al_align_cb);
113        aws->insert_option("formatted","j",1);
114        aws->update_option_menu();
115
116        aws->at("len");
117        aws->create_input_field("tmp/fields/fields_len",5);
118
119        aws->at("type");
120        aws->create_option_menu("tmp/fields/fields_type");
121        aws->insert_option("dna","d","dna");
122        aws->insert_option("rna","r","rna");
123        aws->insert_option("pro","p","ami");
124        aws->insert_default_option("???","?","usr");
125        aws->update_option_menu();
126
127        aws->at("security");
128        aws->create_option_menu("tmp/fields/security");
129        aws->callback(ed_al_check_len_cb);
130        aws->insert_option("0","0",0);
131        aws->callback(ed_al_check_len_cb);
132        aws->insert_option("1","1",1);
133        aws->callback(ed_al_check_len_cb);
134        aws->insert_option("2","2",2);
135        aws->callback(ed_al_check_len_cb);
136        aws->insert_option("3","3",3);
137        aws->callback(ed_al_check_len_cb);
138        aws->insert_option("4","4",4);
139        aws->callback(ed_al_check_len_cb);
140        aws->insert_option("5","5",5);
141        aws->callback(ed_al_check_len_cb);
142        aws->insert_default_option("6","6",6);
143        aws->update_option_menu();
144
145        aws->at("rem");
146        aws->create_text_field("tmp/fields/fields_rem");
147
148
149        return (AW_window *)aws;
150}
Note: See TracBrowser for help on using the repository browser.