- Timestamp:
- 21/05/10 19:44:17 (21 months ago)
- Location:
- trunk
- Files:
-
- 29 modified
-
AWT/AWT_db_browser.cxx (modified) (1 diff)
-
AWT/awt.hxx (modified) (1 diff)
-
DIST/DI_main.cxx (modified) (2 diffs)
-
DIST/DI_matr.cxx (modified) (2 diffs)
-
EDIT4/ED4_main.cxx (modified) (4 diffs)
-
EDIT4/ED4_naligner.cxx (modified) (3 diffs)
-
EDIT4/ED4_root.cxx (modified) (5 diffs)
-
EDIT4/ed4_class.hxx (modified) (1 diff)
-
GENOM/GEN_map.cxx (modified) (1 diff)
-
MERGE/MG_main.cxx (modified) (2 diffs)
-
NTREE/NT_extern.cxx (modified) (3 diffs)
-
NTREE/NT_main.cxx (modified) (3 diffs)
-
PARSIMONY/PARS_main.cxx (modified) (3 diffs)
-
PHYLO/PH_main.cxx (modified) (3 diffs)
-
PROBE_DESIGN/probe_design.cxx (modified) (1 diff)
-
SECEDIT/SEC_main.cxx (modified) (1 diff)
-
SL/GUI_ALIVIEW/AWT_filter.cxx (modified) (1 diff)
-
WETC/WETC_main.cxx (modified) (1 diff)
-
WINDOW/AW_advice.cxx (modified) (2 diffs)
-
WINDOW/AW_modal.cxx (modified) (6 diffs)
-
WINDOW/AW_nawar.cxx (modified) (6 diffs)
-
WINDOW/AW_preset.cxx (modified) (1 diff)
-
WINDOW/AW_status.cxx (modified) (3 diffs)
-
WINDOW/AW_window.cxx (modified) (12 diffs)
-
WINDOW/aw_advice.hxx (modified) (1 diff)
-
WINDOW/aw_awars.hxx (modified) (1 diff)
-
WINDOW/aw_preset.hxx (modified) (1 diff)
-
WINDOW/aw_root.hxx (modified) (7 diffs)
-
WINDOW/aw_window_Xm.hxx (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/AWT/AWT_db_browser.cxx
r6592 r6666 955 955 #endif // DEBUG 956 956 957 AW_ default AWT_open_properties(AW_root *aw_root, const char *default_name) {958 AW_ default aw_def = aw_root->open_default(default_name);957 AW_root *AWT_create_root(const char *properties, const char *program) { 958 AW_root *aw_root = new AW_root(properties, program, false); 959 959 #if defined(DEBUG) 960 if (aw_def) AWT_announce_properties_to_browser(aw_def, default_name);960 AWT_announce_properties_to_browser(AW_ROOT_DEFAULT, properties); 961 961 #endif // DEBUG 962 return aw_def; 963 } 964 962 return aw_root; 963 } 965 964 966 965 // ------------------------ -
trunk/AWT/awt.hxx
r6656 r6666 198 198 #endif // DEBUG 199 199 200 AW_ default AWT_open_properties(AW_root *aw_root, const char *default_name);200 AW_root *AWT_create_root(const char *properties, const char *program); 201 201 202 202 void AWT_install_cb_guards(); -
trunk/DIST/DI_main.cxx
r6656 r6666 51 51 aw_initstatus(); 52 52 53 AW_root *aw_root = new AW_root; 54 AW_default aw_default = AWT_open_properties(aw_root, ".arb_prop/dist.arb"); 55 56 aw_root->init_variables(aw_default); 57 aw_root->init_root("ARB_DIST", false); 53 AW_root *aw_root = AWT_create_root(".arb_prop/dist.arb", "ARB_DIST"); 58 54 59 55 { … … 75 71 } 76 72 77 DI_create_matrix_variables(aw_root, aw_default, GLOBAL_gb_main);73 DI_create_matrix_variables(aw_root, AW_ROOT_DEFAULT, GLOBAL_gb_main); 78 74 #ifdef FINDCORR 79 bc_create_bc_variables(aw_root, aw_default);75 bc_create_bc_variables(aw_root, AW_ROOT_DEFAULT); 80 76 #endif 81 ARB_init_global_awars(aw_root, aw_default, GLOBAL_gb_main);77 ARB_init_global_awars(aw_root, AW_ROOT_DEFAULT, GLOBAL_gb_main); 82 78 83 AWT_graphic *awd = (AWT_graphic *)0; 84 AW_window *aww = DI_create_matrix_window(aw_root); 79 AW_window *aww = DI_create_matrix_window(aw_root); 85 80 aww->show(); 86 81 -
trunk/DIST/DI_matr.cxx
r6659 r6666 110 110 aw_root->awar_int(AWAR_DIST_MATRIX_DNA_ENABLED, 0)->add_callback(delete_matrix_cb); // user matrix disabled by default 111 111 { 112 GBDATA *gbd = GB_search( (GBDATA *)aw_root->application_database, AWAR_DIST_MATRIX_DNA_BASE, GB_FIND);112 GBDATA *gbd = GB_search(AW_ROOT_DEFAULT, AWAR_DIST_MATRIX_DNA_BASE, GB_FIND); 113 113 GB_add_callback(gbd, GB_CB_CHANGED, (GB_CB)delete_matrix_cb, 0); 114 114 } … … 1522 1522 aws->create_menu("Properties", "P", AWM_ALL); 1523 1523 aws->insert_menu_topic("frame_props", "Frame ...", "F", "props_frame.hlp", AWM_ALL, AW_POPUP, (AW_CL)AW_preset_window, 0); 1524 aws->insert_menu_topic("save_props", "Save Properties (in ~/.arb_prop/dist.arb)", "S", "savedef.hlp", AWM_ALL, (AW_CB)AW_save_ defaults, 0, 0);1524 aws->insert_menu_topic("save_props", "Save Properties (in ~/.arb_prop/dist.arb)", "S", "savedef.hlp", AWM_ALL, (AW_CB)AW_save_properties, 0, 0); 1525 1525 1526 1526 aws->insert_help_topic("help ...", "h", "dist.hlp", AWM_ALL, (AW_CB)AW_POPUP_HELP, (AW_CL)"dist.hlp", 0); -
trunk/EDIT4/ED4_main.cxx
r6513 r6666 482 482 } 483 483 484 485 static void openProperties() {486 for (int mode = 0; mode <= 2; ++mode) { // search for defaults-database487 const char *name = ED4_propertyName(mode);488 AW_default found = ED4_ROOT->aw_root->open_default(name, mode == 2); // if mode == 2 -> create if missing489 490 if (found) {491 ED4_ROOT->props_db = found;492 ED4_ROOT->db_name = strdup(name);493 break;494 }495 }496 497 GB_informationf("Using properties from '%s'", ED4_ROOT->db_name);498 #if defined(DEBUG)499 AWT_announce_properties_to_browser(ED4_ROOT->props_db, ED4_ROOT->db_name);500 #endif // DEBUG501 ED4_ROOT->aw_root->init_variables(ED4_ROOT->props_db); // pass defaults502 }503 504 484 int main(int argc, char **argv) 505 485 { … … 542 522 } 543 523 524 aw_initstatus(); 525 544 526 GLOBAL_gb_main = GB_open(data_path, "rwt"); 545 527 if (!GLOBAL_gb_main) … … 552 534 AWT_announce_db_to_browser(GLOBAL_gb_main, GBS_global_string("ARB database (%s)", data_path)); 553 535 #endif // DEBUG 536 554 537 ED4_ROOT = new ED4_root; 555 556 openProperties(); // open properties database557 558 ED4_ROOT->aw_root->init_root("ARB_EDIT4", false); // initialize window-system559 538 560 539 ED4_ROOT->database = new EDB_root_bact; … … 563 542 564 543 ED4_ROOT->st_ml = STAT_create_ST_ML(GLOBAL_gb_main); 565 ED4_ROOT->sequence_colors = new AWT_seq_colors( (GBDATA *)ED4_ROOT->aw_root->application_database, (int)ED4_G_SEQUENCES, ED4_refresh_window, 0, 0);544 ED4_ROOT->sequence_colors = new AWT_seq_colors(AW_ROOT_DEFAULT, ED4_G_SEQUENCES, ED4_refresh_window, 0, 0); 566 545 567 546 ED4_ROOT->edk = new ed_key; -
trunk/EDIT4/ED4_naligner.cxx
r6422 r6666 151 151 } 152 152 153 void ed_nalign_save(AW_window *aww)154 {155 AW_root *root = aww->get_root();156 root->save_default("naligner/aa");157 }158 159 153 AW_window *create_expert_naligner_window(AW_root *root) 160 154 { … … 168 162 aws->create_button("CLOSE", "CLOSE", "C"); 169 163 170 aws->at("save");171 aws->callback(ed_nalign_save);172 aws->create_button("SAVE", "SAVE", "S");173 174 164 aws->at("minw"); aws->create_input_field("naligner/minw", mwidth); 175 165 aws->at("maxew"); aws->create_input_field("naligner/maxew", mwidth); … … 228 218 aws->create_button("EXPERT_OPTIONS", "EXPERT2", "E"); 229 219 230 aws->at("save");231 aws->callback(ed_nalign_save);232 aws->create_button("SAAVE", "SAVE", "S");233 234 220 return (AW_window *)aws; 235 221 } -
trunk/EDIT4/ED4_root.cxx
r6513 r6666 1281 1281 } 1282 1282 1283 static void ED4_save_ defaults(AW_window *aw, AW_CL cl_mode, AW_CL) {1283 static void ED4_save_properties(AW_window *aw, AW_CL cl_mode, AW_CL) { 1284 1284 int mode = (int)cl_mode; 1285 1285 1286 AW_save_specific_ defaults(aw, ED4_propertyName(mode));1286 AW_save_specific_properties(aw, ED4_propertyName(mode)); 1287 1287 } 1288 1288 … … 1589 1589 1590 1590 const char *entry = GBS_global_string("Save loaded Properties (~/%s)", db_name); 1591 awmm->insert_menu_topic("save_loaded_props", entry, "l", "e4_defaults.hlp", AWM_ALL, ED4_save_ defaults, (AW_CL)default_mode, 0);1591 awmm->insert_menu_topic("save_loaded_props", entry, "l", "e4_defaults.hlp", AWM_ALL, ED4_save_properties, (AW_CL)default_mode, 0); 1592 1592 SEP________________________SEP; 1593 1593 … … 1596 1596 hotkey[0] = "Pta"[mode]; 1597 1597 entry = GBS_global_string("Save %sProperties (~/%s)", entry_type[mode], ED4_propertyName(mode)); 1598 awmm->insert_menu_topic(tag[mode], entry, hotkey, "e4_defaults.hlp", AWM_ALL, ED4_save_ defaults, (AW_CL)mode, 0);1598 awmm->insert_menu_topic(tag[mode], entry, hotkey, "e4_defaults.hlp", AWM_ALL, ED4_save_properties, (AW_CL)mode, 0); 1599 1599 } 1600 1600 } … … 1887 1887 } 1888 1888 1889 ED4_root::ED4_root() 1890 { 1889 static char *detectProperties() { 1890 char *propname = NULL; 1891 1892 for (int mode = 0; !propname && mode <= 2; ++mode) { // search for properties-database 1893 const char *fullprop = AW_root::property_DB_fullname(ED4_propertyName(mode)); 1894 if (mode == 2 || GB_is_regularfile(fullprop)) { 1895 freedup(propname, fullprop); 1896 } 1897 } 1898 1899 GB_informationf("Using properties from '%s'", propname); 1900 return propname; 1901 } 1902 1903 ED4_root::ED4_root() { 1891 1904 memset((char *)this, 0, sizeof(*this)); 1892 1905 1893 aw_root = new AW_root; 1894 first_window = NULL; 1895 main_manager = NULL; 1896 database = NULL; 1897 tmp_ed4w = NULL; 1898 tmp_aww = NULL; 1899 tmp_device = NULL; 1900 temp_gc = 0; 1901 1902 scroll_links.link_for_hor_slider = NULL; 1903 scroll_links.link_for_ver_slider = NULL; 1904 1905 folding_action = 0; 1906 1907 species_mode = ED4_SM_MOVE; 1908 scroll_picture.scroll = 0; 1909 scroll_picture.old_x = 0; 1910 scroll_picture.old_y = 0; 1911 middle_area_man = NULL; 1912 top_area_man = NULL; 1913 root_group_man = NULL; 1914 ecoli_ref = NULL; 1915 protstruct = NULL; 1916 protstruct_len = 0; 1917 column_stat_activated = 0; 1918 column_stat_initialized = 0; 1919 visualizeSAI = 0; 1920 visualizeSAI_allSpecies = 0; 1921 1922 aw_initstatus(); 1923 } 1924 1925 1926 ED4_root::~ED4_root() 1927 { 1906 db_name = detectProperties(); 1907 aw_root = AWT_create_root(db_name, "ARB_EDIT4"); 1908 props_db = AW_ROOT_DEFAULT; 1909 1910 species_mode = ED4_SM_MOVE; 1911 } 1912 1913 1914 ED4_root::~ED4_root() { 1928 1915 delete aw_root; 1929 1916 delete first_window; … … 1933 1920 delete database; 1934 1921 delete ecoli_ref; 1935 if (protstruct) free(protstruct); 1936 } 1922 1923 free(protstruct); 1924 free(db_name); 1925 } -
trunk/EDIT4/ed4_class.hxx
r6512 r6666 1040 1040 AW_root *aw_root; // Points to 'AW-Window-Controller' 1041 1041 AW_default props_db; // Default Properties database 1042 c onst char*db_name; // name of Default Properties database1042 char *db_name; // name of Default Properties database 1043 1043 ED4_window *first_window; // Points to List of Main Windows of ED4 1044 1044 ED4_main_manager *main_manager; // Points to Main manager of ED4 -
trunk/GENOM/GEN_map.cxx
r6490 r6666 1632 1632 insert_menu_topic("gene_options", "Options", "O", "gene_options.hlp", AWM_ALL, AW_POPUP, (AW_CL)GEN_create_options_window, 0); 1633 1633 insert_menu_topic("gene_nds", "NDS ( Select Gene Information ) ...", "N", "props_nds.hlp", AWM_ALL, AW_POPUP, (AW_CL)GEN_open_nds_window, (AW_CL)gb_main); 1634 insert_menu_topic("gene_save_props", "Save Defaults (in ~/.arb_prop/ntree.arb)", "D", "savedef.hlp", AWM_ALL, (AW_CB) AW_save_ defaults, 0, 0);1634 insert_menu_topic("gene_save_props", "Save Defaults (in ~/.arb_prop/ntree.arb)", "D", "savedef.hlp", AWM_ALL, (AW_CB) AW_save_properties, 0, 0); 1635 1635 1636 1636 // --------------------- -
trunk/MERGE/MG_main.cxx
r6639 r6666 228 228 } 229 229 230 awm->insert_menu_topic("save_props", "Save properties (to ~/.arb_prop/ntree.arb)", "p", "savedef.hlp", AWM_ALL, (AW_CB)AW_save_ defaults, 0, 0);230 awm->insert_menu_topic("save_props", "Save properties (to ~/.arb_prop/ntree.arb)", "p", "savedef.hlp", AWM_ALL, (AW_CB)AW_save_properties, 0, 0); 231 231 232 232 awm->button_length(30); … … 418 418 } 419 419 420 AW_window *create_MG_main_window(AW_root *aw_root) 421 { 420 AW_window *create_MG_main_window(AW_root *aw_root) { 422 421 MG_create_all_awars(aw_root, AW_ROOT_DEFAULT); 423 422 AW_window *aww=create_merge_init_window(aw_root); -
trunk/NTREE/NT_extern.cxx
r6639 r6666 399 399 void NT_save_as_cb(AW_window *aww) { 400 400 char *filename = aww->get_root()->awar(AWAR_DB_PATH)->read_string(); 401 char *filetype = aww->get_root()->awar(AWAR_DB "type")->read_string();401 char *filetype = aww->get_root()->awar(AWAR_DB_TYPE)->read_string(); 402 402 403 403 GB_ERROR error = GB_save(GLOBAL_gb_main, filename, filetype); … … 431 431 aws->at("type"); 432 432 aws->label("Type "); 433 aws->create_option_menu(AWAR_DB "type");433 aws->create_option_menu(AWAR_DB_TYPE); 434 434 aws->insert_option("Binary", "B", "b"); 435 435 aws->insert_option("Bin (with FastLoad File)", "f", "bm"); … … 1538 1538 AWMIMT("!toggle_expert", "Toggle expert mode", "x", 0, AWM_ALL, NT_toggle_expert_mode, 0, 0); 1539 1539 SEP________________________SEP(); 1540 AWMIMT("save_props", "Save properties (in ~/.arb_prop/ntree.arb)", "S", "savedef.hlp", AWM_ALL, (AW_CB) AW_save_ defaults, 0, 0);1540 AWMIMT("save_props", "Save properties (in ~/.arb_prop/ntree.arb)", "S", "savedef.hlp", AWM_ALL, (AW_CB) AW_save_properties, 0, 0); 1541 1541 } 1542 1542 } -
trunk/NTREE/NT_main.cxx
r6428 r6666 248 248 } 249 249 else { 250 aww->get_root()->awar(AWAR_DB "filter")->touch();250 aww->get_root()->awar(AWAR_DB_FILTER)->touch(); 251 251 } 252 252 } … … 389 389 GB_set_verbose(); 390 390 391 AW_root *aw_root = new AW_root; 392 GLOBAL_NT.awr = aw_root; 391 AW_root *aw_root = AWT_create_root(".arb_prop/ntree.arb", "ARB_NT"); 392 393 GLOBAL_NT.awr = aw_root; 393 394 MapViewer_set_default_root(aw_root); // set default for launch_MapViewer_cb (as long as no info-box was opened) 394 395 AW_default aw_default = AWT_open_properties(aw_root, ".arb_prop/ntree.arb");396 aw_root->init_variables(aw_default);397 aw_root->init_root("ARB_NT", false);398 395 399 396 // create some early awars 400 397 // Note: normally you don't like to add your awar-init-function here, but into nt_create_all_awars() 401 398 402 AW_create_fileselection_awars(aw_root, AWAR_DB, "", ".arb", "noname.arb", aw_default); 403 aw_root->awar_string(AWAR_DB"type", "b", aw_default); 404 405 aw_root->awar_int(AWAR_EXPERT, 0, aw_default); 406 407 aw_root->awar_string(AWAR_DB_NAME, "noname.arb", aw_default); 399 AW_create_fileselection_awars(aw_root, AWAR_DB, "", ".arb", "noname.arb"); 400 aw_root->awar_string(AWAR_DB_TYPE, "b"); 401 aw_root->awar_string(AWAR_DB_NAME, "noname.arb"); 408 402 aw_root->awar(AWAR_DB_PATH)->add_callback(AWAR_DB_PATH_changed_cb); 409 403 410 init_Advisor(aw_root, aw_default); 404 aw_root->awar_int(AWAR_EXPERT, 0); 405 406 init_Advisor(aw_root); 411 407 AWT_install_cb_guards(); 412 408 413 409 if (argc==3) { // looks like merge 414 410 if (argv[1][0] != '-') { // not if first argument is a switch 415 MG_create_all_awars(aw_root, aw_default, argv[1], argv[2]);411 MG_create_all_awars(aw_root, AW_ROOT_DEFAULT, argv[1], argv[2]); 416 412 nt_intro_start_merge(0, aw_root); 417 413 aw_root->main_loop(); … … 454 450 455 451 if (strcmp(argv[1], "-export")==0) { 456 MG_create_all_awars(aw_root, aw_default, ":", "noname.arb");452 MG_create_all_awars(aw_root, AW_ROOT_DEFAULT, ":", "noname.arb"); 457 453 GLOBAL_gb_merge = GBT_open(":", "rw", 0); 458 454 if (!GLOBAL_gb_merge) { -
trunk/PARSIMONY/PARS_main.cxx
r6592 r6666 1436 1436 awm->insert_menu_topic("props_tree2", "Tree: Settings ...", "T", "nt_tree_settings.hlp", AWM_ALL, AW_POPUP, (AW_CL)NT_create_tree_setting, (AW_CL)ntw); 1437 1437 awm->insert_menu_topic("props_kl", "KERN. LIN ...", "K", "kernlin.hlp", AWM_ALL, AW_POPUP, (AW_CL)create_kernighan_window, 0); 1438 awm->insert_menu_topic("save_props", "Save Defaults (in ~/.arb_prop/pars.arb)", "D", "savedef.hlp", AWM_ALL, (AW_CB)AW_save_ defaults, 0, 0);1438 awm->insert_menu_topic("save_props", "Save Defaults (in ~/.arb_prop/pars.arb)", "D", "savedef.hlp", AWM_ALL, (AW_CB)AW_save_properties, 0, 0); 1439 1439 } 1440 1440 awm->button_length(5); … … 1707 1707 aw_initstatus(); 1708 1708 1709 AW_root *aw_root = new AW_root; 1710 AW_default aw_default = AWT_open_properties(aw_root, ".arb_prop/pars.arb"); 1711 aw_root->init_variables(aw_default); 1712 aw_root->init_root("ARB_PARS", false); 1713 1709 AW_root *aw_root = AWT_create_root(".arb_prop/pars.arb", "ARB_PARS"); 1714 1710 AD_map_viewer_aw_root = aw_root; 1715 1711 … … 1759 1755 #endif // DEBUG 1760 1756 1761 pars_create_all_awars(aw_root, aw_default);1757 pars_create_all_awars(aw_root, AW_ROOT_DEFAULT); 1762 1758 1763 1759 AW_window *aww = create_pars_init_window(aw_root, &cmds); -
trunk/PHYLO/PH_main.cxx
r6501 r6666 483 483 awm->insert_menu_topic("props_menu", "Menu: Colors and Fonts ...", "M", "props_frame.hlp", AWM_ALL, AW_POPUP, (AW_CL)AW_preset_window, 0); 484 484 awm->insert_menu_topic("props_data", "Data: Colors and Fonts ...", "D", "ph_props_data.hlp", AWM_ALL, AW_POPUP, (AW_CL)AW_create_gc_window, (AW_CL)gcmiddle); 485 awm->insert_menu_topic("save_props", "Save Properties (in ~/.arb_prop/phylo.arb)", "S", "savedef.hlp", AWM_ALL, (AW_CB)AW_save_ defaults, 0, 0);485 awm->insert_menu_topic("save_props", "Save Properties (in ~/.arb_prop/phylo.arb)", "S", "savedef.hlp", AWM_ALL, (AW_CB)AW_save_properties, 0, 0); 486 486 487 487 … … 555 555 aw_initstatus(); 556 556 557 AW_root *aw_root = new AW_root; 558 AW_default aw_default = AWT_open_properties(aw_root, ".arb_prop/phylo.arb"); 559 aw_root->init_variables(aw_default); 560 aw_root->init_root("ARB_PHYLO", false); 561 562 557 AW_root *aw_root = AWT_create_root(".arb_prop/phylo.arb", "ARB_PHYLO"); 563 558 PH_root *ph_root = new PH_root; 564 559 GB_ERROR error = ph_root->open(db_server); … … 569 564 570 565 // create arb_phylo awars : 571 PH_create_filter_variables(aw_root, aw_default);572 PH_create_matrix_variables(aw_root, aw_default);573 ARB_init_global_awars(aw_root, aw_default, GLOBAL_gb_main);566 PH_create_filter_variables(aw_root, AW_ROOT_DEFAULT); 567 PH_create_matrix_variables(aw_root, AW_ROOT_DEFAULT); 568 ARB_init_global_awars(aw_root, AW_ROOT_DEFAULT, GLOBAL_gb_main); 574 569 #if defined(DEBUG) 575 AWT_create_db_browser_awars(aw_root, aw_default);570 AWT_create_db_browser_awars(aw_root, AW_ROOT_DEFAULT); 576 571 #endif // DEBUG 577 572 -
trunk/PROBE_DESIGN/probe_design.cxx
r6656 r6666 1223 1223 } 1224 1224 1225 void probe_design_save_default(AW_window *aw, AW_default aw_def)1226 {1227 AW_root *aw_root = aw->get_root();1228 aw_root->save_default(aw_def, 0);1229 }1230 1231 1232 1225 AW_window *create_probe_design_window(AW_root *root, AW_CL cl_gb_main) { 1233 1226 AW_window_simple *aws = new AW_window_simple; -
trunk/SECEDIT/SEC_main.cxx
r6422 r6666 704 704 } 705 705 706 static void SEC_exit(GBDATA *gb_main, void *cl_sec_root) { 706 #if defined(DEVEL_RALF) 707 #warning use popdown callback for SEC_exit and valgrind open/close/open secedit 708 #endif // DEVEL_RALF 709 710 static void SEC_exit(GBDATA *, void *cl_sec_root) { 707 711 SEC_root *sec_root = static_cast<SEC_root*>(cl_sec_root); 708 712 709 713 delete sec_root; 714 sec_root = NULL; 710 715 } 711 716 -
trunk/SL/GUI_ALIVIEW/AWT_filter.cxx
r6490 r6666 194 194 struct adfiltercbstruct *acbs = new adfiltercbstruct; 195 195 acbs->gb_main = gb_main; 196 AW_default aw_def = AW_ROOT_DEFAULT; 197 196 198 GB_push_transaction(acbs->gb_main); 197 AW_default aw_def = aw_root->get_default(def_name);198 199 199 200 #if defined(DEBUG) -
trunk/WETC/WETC_main.cxx
r6490 r6666 16 16 17 17 int main(int argc, char **argv) { 18 if (argc <1) { 19 GB_export_error("Syntax: arb_wetc [-fileedit]"); 20 GB_print_error(); 21 exit(-1); 18 GB_ERROR error = NULL; 19 20 if (argc != 3) { 21 error = "Missing arguments"; 22 } 23 else { 24 const char *com = argv[1]; 25 const char *file = argv[2]; 26 27 if (strcmp(com, "-fileedit") != 0) { 28 error = GBS_global_string("Unexpected parameter '%s'", com); 29 } 30 else { 31 AW_root *aw_root = AWT_create_root(".arb_prop/ntree.arb", "ARB_WETC"); 32 33 AWT_show_file(aw_root, file); 34 aw_root->window_hide(); 35 AWT_install_cb_guards(); 36 aw_root->main_loop(); 37 38 } 22 39 } 23 40 24 const char *com = argv[1]; 25 AW_root *aw_root = new AW_root; 26 AW_default aw_default = AWT_open_properties(aw_root, ".arb_prop/ntree.arb"); 27 28 aw_root->init_variables(aw_default); 29 aw_root->init_root("ARB_WETC", false); 30 31 if (!strcmp(com, "-fileedit")) { 32 AWT_show_file(aw_root, argv[2]); 41 if (error) { 42 fprintf(stderr, 43 "Syntax: arb_wetc -fileedit filename\n" 44 "Error: %s\n", 45 error); 46 return EXIT_FAILURE; 33 47 } 34 else { 35 GB_export_error("wrong parameter, allowed: [-fileedit] file"); 36 GB_print_error(); 37 exit(-1); 38 } 39 aw_root->window_hide(); 40 AWT_install_cb_guards(); 41 aw_root->main_loop(); 42 return 0; 48 return EXIT_SUCCESS; 43 49 } 44 50 -
trunk/WINDOW/AW_advice.cxx
r6490 r6666 31 31 // ------------------------- 32 32 33 static bool initialized = false; 34 static AW_root *advice_root = 0; 35 static AW_default advice_props = 0; 33 static bool initialized = false; 34 static AW_root *advice_root = 0; 36 35 37 36 // -------------------------------------------------------- 38 37 39 void init_Advisor(AW_root *awr, AW_default def) 40 { 38 void init_Advisor(AW_root *awr) { 41 39 aw_assert(!initialized); // can't init twice 42 40 43 41 advice_root = awr; 44 advice_props = def;45 42 46 advice_root->awar_string(AWAR_ADVICE_TEXT, "<no advice>" , advice_props);47 advice_root->awar_int(AWAR_ADVICE_UNDERSTOOD, 0 , advice_props);43 advice_root->awar_string(AWAR_ADVICE_TEXT, "<no advice>"); 44 advice_root->awar_int(AWAR_ADVICE_UNDERSTOOD, 0); 48 45 49 46 initialized = true; … … 55 52 56 53 static AW_awar *get_disabled_advices() { 57 return advice_root->awar_string(AWAR_ADVICE_DISABLED, "" , advice_props);54 return advice_root->awar_string(AWAR_ADVICE_DISABLED, ""); 58 55 } 59 56 -
trunk/WINDOW/AW_modal.cxx
r6580 r6666 69 69 aw_assert(buttons); 70 70 71 AW_root *root = AW_root:: THIS;71 AW_root *root = AW_root::SINGLETON; 72 72 73 73 AW_window_message *aw_msg; … … 448 448 static AW_window_message *aw_msg = 0; 449 449 450 AW_root *root = AW_root:: THIS;450 AW_root *root = AW_root::SINGLETON; 451 451 if (!aw_msg) create_input_awars(root); // first call -> create awars 452 452 … … 491 491 492 492 char *aw_input2awar(const char *title, const char *prompt, const char *awar_name) { 493 AW_root *aw_root = AW_root:: THIS;493 AW_root *aw_root = AW_root::SINGLETON; 494 494 AW_awar *awar = aw_root->awar(awar_name); 495 495 char *default_value = awar->read_string(); … … 542 542 AW_selection_list *& sel = sd->sel; 543 543 544 AW_root *root = AW_root:: THIS;544 AW_root *root = AW_root::SINGLETON; 545 545 if (!aw_msg) create_input_awars(root); // first call -> create awars 546 546 … … 633 633 // default_value is taken from and result is written back to awar 'awar_name' 634 634 635 AW_root *aw_root = AW_root:: THIS;635 AW_root *aw_root = AW_root::SINGLETON; 636 636 AW_awar *awar = aw_root->awar(awar_name); 637 637 char *default_value = awar->read_string(); … … 648 648 649 649 char *aw_file_selection(const char *title, const char *dir, const char *def_name, const char *suffix) { 650 AW_root *root = AW_root:: THIS;650 AW_root *root = AW_root::SINGLETON; 651 651 652 652 static AW_window_simple *aw_msg = 0; -
trunk/WINDOW/AW_nawar.cxx
r6422 r6666 153 153 } 154 154 155 AW_default aw_main_root_default = (AW_default) "this is a dummy text asfasf asfd";156 157 AW_default aw_check_default_file(AW_default root_default, AW_default default_file, const char *varname)158 {159 if (default_file == aw_main_root_default) return root_default;160 if (default_file == NULL) {161 AW_ERROR("Creating variable '%s' with zero default file\n", varname);162 return root_default;163 }164 return default_file;165 }166 167 168 155 // for string 169 156 AW_awar *AW_root::awar_string(const char *var_name, const char *default_value, AW_default default_file) { 170 157 AW_awar *vs = (AW_awar *)GBS_read_hash(hash_table_for_variables, (char *)var_name); 171 158 if (!vs) { 172 default_file = aw_check_default_file(this->application_database, default_file, var_name);159 default_file = check_properties(default_file); 173 160 vs = new AW_awar(AW_STRING, var_name, default_value, 0, default_file, this); 174 161 GBS_write_hash(hash_table_for_variables, (char *)var_name, (long)vs); … … 182 169 AW_awar *vs = (AW_awar *)GBS_read_hash(hash_table_for_variables, (char *)var_name); 183 170 if (!vs) { 184 default_file = aw_check_default_file(this->application_database, default_file, var_name);171 default_file = check_properties(default_file); 185 172 vs = new AW_awar(AW_INT, var_name, (char *)default_value, 0, default_file, this); 186 173 GBS_write_hash(hash_table_for_variables, (char *)var_name, (long)vs); … … 194 181 AW_awar *vs = (AW_awar *)GBS_read_hash(hash_table_for_variables, (char *)var_name); 195 182 if (!vs) { 196 default_file = aw_check_default_file(this->application_database, default_file, var_name);183 default_file = check_properties(default_file); 197 184 vs = new AW_awar(AW_FLOAT, var_name, "", (double)default_value, default_file, this); 198 185 GBS_write_hash(hash_table_for_variables, (char *)var_name, (long)vs); … … 204 191 AW_awar *vs = (AW_awar *)GBS_read_hash(hash_table_for_variables, (char *)var_name); 205 192 if (!vs) { 206 default_file = aw_check_default_file(this->application_database, default_file, var_name);193 default_file = check_properties(default_file); 207 194 vs = new AW_awar(AW_POINTER, var_name, (const char *)default_value, NULL, default_file, this); 208 195 GBS_write_hash(hash_table_for_variables, (char *)var_name, (long)vs); … … 641 628 } 642 629 643 644 645 AW_default AW_root::open_default(const char *default_name, bool create_if_missing) 646 { 647 if (!create_if_missing) { // used to check for existing specific properties 648 const char *home = GB_getenvHOME(); 649 char *buffer = (char *)GB_calloc(sizeof(char), strlen(home) + strlen(default_name) + 2); 650 651 sprintf(buffer, "%s/%s", home, default_name); 652 653 struct stat st; 654 bool found = stat(buffer, &st) == 0; 655 656 free(buffer); 657 658 if (!found) return 0; 659 } 660 661 #if defined(DEVEL_RALF) 662 #warning gb_default is never closed 663 // close it somewhere and call AWT_browser_forget_db as well 664 #endif // DEVEL_RALF 665 630 AW_awar::~AW_awar() { 631 remove_all_target_vars(); 632 unlink(); 633 free(awar_name); 634 } 635 636 const char *AW_root::property_DB_fullname(const char *default_name) { 637 const char *home = GB_getenvHOME(); 638 return GBS_global_string("%s/%s", home, default_name); 639 } 640 641 bool AW_root::property_DB_exists(const char *default_name) { 642 return GB_is_regularfile(property_DB_fullname(default_name)); 643 } 644 645 AW_default AW_root::load_properties(const char *default_name) { 666 646 GBDATA *gb_default = GB_open(default_name, "rwcD"); 667 647 … … 682 662 } 683 663 684 685 AW_error *AW_root::save_default(const char *var_name) { 686 return save_default(var_name, NULL); 687 } 688 689 AW_error *AW_root::save_default(const char *var_name, const char *file_name) { 690 AW_awar *vs; 691 if ((vs = this->awar(var_name))) { 692 AW_root::save_default((AW_default)vs->gb_var, file_name); 693 return 0; 694 } 695 else { 696 AW_ERROR("AW_root::save_default: Variable %s not defined", var_name); 697 } 698 return 0; 699 700 } 701 702 AW_error *AW_root::save_default(AW_default aw_default, const char *file_name) 703 { 704 GBDATA *gb_main = GB_get_root((GBDATA *)aw_default); 705 GB_push_transaction(gb_main); 706 aw_update_awar_window_geometry(this); 707 GB_pop_transaction(gb_main); 708 GB_save_in_home(gb_main, file_name, "a"); 709 return 0; 710 } 711 712 AW_default AW_root::get_default(const char *varname) { 713 GBDATA *gbd; 714 AW_awar *vs; 715 if ((vs = this->awar(varname))) { 716 gbd = vs->gb_var; 717 return (AW_default)GB_get_root(gbd); 718 } 719 else { 720 AW_ERROR("AW_root::get_default: Variable %s not defined", varname); 721 } 722 return 0; 723 } 664 GB_ERROR AW_root::save_properties(const char *filename) { 665 GB_ERROR error = NULL; 666 GBDATA *gb_main = application_database; 667 668 if (!gb_main) { 669 error = "No properties loaded - won't save"; 670 } 671 else { 672 error = GB_push_transaction(gb_main); 673 if (!error) { 674 aw_update_awar_window_geometry(this); 675 error = GB_pop_transaction(gb_main); 676 if (!error) error = GB_save_in_home(gb_main, filename, "a"); 677 } 678 } 679 680 return error; 681 } 682 724 683 725 684 AW_default AW_root::get_gbdata(const char *varname) { -
trunk/WINDOW/AW_preset.cxx
r6422 r6666 22 22 #include <cstdarg> 23 23 24 void AW_save_defaults(AW_window *aw) { 25 aw->get_root()->save_default("window/font"); 26 } 27 28 void AW_save_specific_defaults(AW_window *aw, const char *filename) { // special version for EDIT4 29 aw->get_root()->save_default("window/font", filename); 30 } 24 void AW_save_specific_properties(AW_window *aw, const char *filename) { // special version for EDIT4 25 GB_ERROR error = aw->get_root()->save_properties(filename); 26 if (error) aw_message(error); 27 } 28 void AW_save_properties(AW_window *aw) { 29 AW_save_specific_properties(aw, NULL); 30 } 31 31 32 32 33 void aw_message_reload(AW_root *) { -
trunk/WINDOW/AW_status.cxx
r6406 r6666 740 740 } 741 741 742 void aw_initstatus() 743 { 744 int error; 745 746 aw_assert(aw_stg.pid == 0); // do not init status twice! 747 748 error = pipe(aw_stg.fd_to); 742 static void create_status_awars(AW_root *aw_root) { 743 aw_root->awar_string(AWAR_STATUS_TITLE, "------------------------------------"); 744 aw_root->awar_string(AWAR_STATUS_TEXT, ""); 745 aw_root->awar_string(AWAR_STATUS_GAUGE, "------------------------------------"); 746 aw_root->awar_string(AWAR_STATUS_ELAPSED, ""); 747 aw_root->awar_string(AWAR_ERROR_MESSAGES, ""); 748 } 749 750 void aw_initstatus() { 751 aw_assert(aw_stg.pid == 0); // do not init status twice! 752 aw_assert(!AW_root::SINGLETON); // aw_initstatus has to be called before constructing AW_root 753 aw_assert(GB_open_DBs() == 0); // aw_initstatus has to be called before opening the first ARB-DB 754 755 int error = pipe(aw_stg.fd_to); 749 756 if (error) { 750 757 printf("Cannot create socketpair\n"); … … 776 783 aw_stg.is_child = true; // mark as child 777 784 778 AW_root *aw_root; 779 aw_root = new AW_root; 780 781 782 AW_default aw_default = aw_root->open_default(".arb_prop/status.arb"); 783 aw_root->init_variables(aw_default); 784 aw_root->awar_string(AWAR_STATUS_TITLE, "------------------------------------", aw_default); 785 aw_root->awar_string(AWAR_STATUS_TEXT, "", aw_default); 786 aw_root->awar_string(AWAR_STATUS_GAUGE, "------------------------------------", aw_default); 787 aw_root->awar_string(AWAR_STATUS_ELAPSED, "", aw_default); 788 aw_root->awar_string(AWAR_ERROR_MESSAGES, "", aw_default); 789 aw_root->init_root("ARB_STATUS", true); 785 AW_root *aw_root = new AW_root(".arb_prop/status.arb", "ARB_STATUS", true); 786 create_status_awars(aw_root); 790 787 791 788 AW_window_simple *aws = new AW_window_simple; … … 924 921 #endif // DEBUG 925 922 if (aw_stg.local_message) { 926 aw_insert_message_in_tmp_message(AW_root:: THIS, msg);923 aw_insert_message_in_tmp_message(AW_root::SINGLETON, msg); 927 924 } 928 925 else { -
trunk/WINDOW/AW_window.cxx
r6549 r6666 50 50 #include <unistd.h> 51 51 52 AW_root *AW_root:: THIS= NULL;52 AW_root *AW_root::SINGLETON = NULL; 53 53 54 54 AW_cb_struct::AW_cb_struct(AW_window *awi, void (*g)(AW_window*, AW_CL, AW_CL), AW_CL cd1i, AW_CL cd2i, … … 127 127 return removed; 128 128 } 129 130 AW_config_struct::AW_config_struct(const char *idi, AW_active maski, Widget w,131 const char *variable_namei, const char *variable_valuei,132 AW_config_struct *nexti)133 {134 aw_assert(legal_mask(maski));135 136 id = strdup(idi);137 mask = maski;138 widget = w;139 variable_name = strdup(variable_namei);140 variable_value = strdup(variable_valuei);141 next = nexti;142 }143 144 129 145 130 AW_option_struct::AW_option_struct(const char *variable_valuei, … … 269 254 } 270 255 271 AW_root::AW_root() { 256 static void destroy_AW_root() { 257 delete AW_root::SINGLETON; 258 } 259 260 AW_root::AW_root(const char *propertyFile, const char *program, bool no_exit) { 261 aw_assert(!AW_root::SINGLETON); // only one instance allowed 262 AW_root::SINGLETON = this; 263 272 264 memset((char *)this, 0, sizeof(AW_root)); 273 this->THIS = this; 274 this->prvt = (AW_root_Motif *)GB_calloc(sizeof(AW_root_Motif), 1); 265 266 prvt = new AW_root_Motif; 267 268 init_variables(load_properties(propertyFile)); 269 init_root(program, no_exit); 270 271 atexit(destroy_AW_root); // do not call this before opening properties DB! 275 272 } 276 273 277 274 AW_root::~AW_root() { 275 exit_variables(); 276 aw_assert(this == AW_root::SINGLETON); 277 278 278 279 delete prvt; 280 281 free(program_name); 282 283 AW_root::SINGLETON = NULL; 279 284 } 280 285 … … 814 819 } 815 820 821 AW_root_Motif::AW_root_Motif() { 822 memset((char*)this, 0, sizeof(*this)); 823 } 824 825 AW_root_Motif::~AW_root_Motif() { 826 GBS_free_hash(action_hash); 827 XmFontListFree(fontlist); 828 } 829 816 830 void AW_root_Motif::set_cursor(Display *d, Window w, Cursor c) { 817 831 XSetWindowAttributes attrs; … … 1267 1281 1268 1282 static struct fallbacks aw_fb[] = { 1269 // fallback awarname init 1270 1271 { "FontList", "window/font", "8x13bold" }, { "background", 1272 "window/background", "grey" }, { "foreground", 1273 "window/foreground", "Black", } 1274 , { 0, "window/color_1", "red", } 1275 , { 0, "window/color_2", "green", } 1276 , { 0, "window/color_3", "blue", } 1277 , { 0, 0, 0 } 1283 // Name fallback awarname default value 1284 { "FontList", "window/font", "8x13bold" }, 1285 { "background", "window/background", "grey" }, 1286 { "foreground", "window/foreground", "Black", }, 1287 { 0, "window/color_1", "red", }, 1288 { 0, "window/color_2", "green", }, 1289 { 0, "window/color_3", "blue", }, 1290 { 0, 0, 0 } 1278 1291 }; 1279 1292 1280 static const char *aw_awar_2_color[] = { "window/background", 1281 "window/foreground", "window/color_1", "window/color_2", 1282 "window/color_3", 0 }; 1293 static const char *aw_awar_2_color[] = { 1294 "window/background", 1295 "window/foreground", 1296 "window/color_1", 1297 "window/color_2", 1298 "window/color_3", 1299 0 1300 }; 1301 1283 1302 1284 1303 void AW_root::init_variables(AW_default database) { 1285 application_database = database; 1286 1304 application_database = database; 1287 1305 hash_table_for_variables = GBS_create_hash(1000, GB_MIND_CASE); 1288 1306 hash_for_windows = GBS_create_hash(100, GB_MIND_CASE); 1289 1307 prvt->action_hash = GBS_create_hash(1000, GB_MIND_CASE); 1290 int i; 1291 for (i=0; i<1000; i++) { 1292 if (aw_fb[i].awar == 0) 1293 break; 1308 1309 for (int i=0; aw_fb[i].awar; ++i) { 1294 1310 awar_string(aw_fb[i].awar, aw_fb[i].init, application_database); 1311 } 1312 } 1313 1314 static long destroy_awar(const char *, long val, void *) { 1315 AW_awar *awar = (AW_awar*)val; 1316 delete awar; 1317 return 0; // remove from hash 1318 } 1319 1320 void AW_root::exit_variables() { 1321 if (hash_table_for_variables) { 1322 GBS_hash_do_loop(hash_table_for_variables, destroy_awar, NULL); 1323 GBS_free_hash(hash_table_for_variables); 1324 hash_table_for_variables = NULL; 1325 } 1326 1327 if (hash_for_windows) { 1328 GBS_free_hash(hash_for_windows); 1329 hash_for_windows = NULL; 1330 } 1331 1332 if (application_database) { 1333 GBDATA *prop_main = application_database; 1334 application_database = NULL; 1335 GB_close(prop_main); 1295 1336 } 1296 1337 } … … 1313 1354 int i; 1314 1355 XColor xcolor_returned, xcolor_exakt; 1315 GBDATA *gbd = (GBDATA*)root->application_database;1356 GBDATA *gbd = root->check_properties(NULL); 1316 1357 p_global->color_table = (unsigned long *)GB_calloc(sizeof(unsigned long), AW_COLOR_MAX); 1317 1358 … … 1424 1465 p_r->button_list = 0; 1425 1466 1426 p_r->config_list = new AW_config_struct("", AWM_ALL, NULL, "Programmer Name", "SH", NULL);1427 p_r->last_config = p_r->config_list;1428 1429 1467 p_r->last_option_menu = p_r->current_option_menu = p_r->option_menu_list = NULL; 1430 1468 p_r->last_toggle_field = p_r->toggle_field_list = NULL; … … 1512 1550 memset(buffer, 0, 200); 1513 1551 sprintf(buffer, "window/%s/horizontal_page_increment", window_defaults_name); 1514 get_root()->awar_int(buffer, 50 , get_root()->application_database);1552 get_root()->awar_int(buffer, 50); 1515 1553 get_root()->awar(buffer)->add_callback( 1516 1554 (AW_RCB)horizontal_scrollbar_redefinition_cb, (AW_CL)this, … … 1518 1556 1519 1557 sprintf(buffer, "window/%s/vertical_page_increment", window_defaults_name); 1520 get_root()->awar_int(buffer, 50 , get_root()->application_database);1558 get_root()->awar_int(buffer, 50); 1521 1559 get_root()->awar(buffer)->add_callback((AW_RCB)vertical_scrollbar_redefinition_cb, 1522 1560 (AW_CL)this, (AW_CL)p_w->scroll_bar_vertical); 1523 1561 1524 1562 sprintf(buffer, "window/%s/scroll_delay_vertical", window_defaults_name); 1525 get_root()->awar_int(buffer, 20 , get_root()->application_database);1563 get_root()->awar_int(buffer, 20); 1526 1564 get_root()->awar(buffer)->add_callback((AW_RCB)vertical_scrollbar_redefinition_cb, 1527 1565 (AW_CL)this, (AW_CL)p_w->scroll_bar_vertical); 1528 1566 1529 1567 sprintf(buffer, "window/%s/scroll_delay_horizontal", window_defaults_name); 1530 get_root()->awar_int(buffer, 20 , get_root()->application_database);1568 get_root()->awar_int(buffer, 20); 1531 1569 get_root()->awar(buffer)->add_callback( 1532 1570 (AW_RCB)horizontal_scrollbar_redefinition_cb, (AW_CL)this, … … 1534 1572 1535 1573 sprintf(buffer, "window/%s/scroll_width_horizontal", window_defaults_name); 1536 get_root()->awar_int(buffer, 9 , get_root()->application_database);1574 get_root()->awar_int(buffer, 9); 1537 1575 get_root()->awar(buffer)->add_callback( 1538 1576 (AW_RCB)horizontal_scrollbar_redefinition_cb, (AW_CL)this, … … 1540 1578 1541 1579 sprintf(buffer, "window/%s/scroll_width_vertical", window_defaults_name); 1542 get_root()->awar_int(buffer, 20 , get_root()->application_database);1580 get_root()->awar_int(buffer, 20); 1543 1581 get_root()->awar(buffer)->add_callback((AW_RCB)vertical_scrollbar_redefinition_cb, 1544 1582 (AW_CL)this, (AW_CL)p_w->scroll_bar_vertical); … … 3459 3497 { 3460 3498 3461 AW_root *root = AW_root:: THIS;3499 AW_root *root = AW_root::SINGLETON; 3462 3500 char buffer[10000]; 3463 3501 { -
trunk/WINDOW/aw_advice.hxx
r6408 r6666 33 33 34 34 //! has to be called one time (before calling AW_advice) 35 void init_Advisor(AW_root *awr , AW_default def);35 void init_Advisor(AW_root *awr); 36 36 37 37 /*! @brief Show a message box with an advice for the user -
trunk/WINDOW/aw_awars.hxx
r6366 r6666 2 2 #define AW_AWARS_HXX 3 3 4 #define AWAR_DB "tmp/nt/arbdb/" 5 #define AWAR_DB_PATH AWAR_DB "file_name" 6 #define AWAR_DB_NAME AWAR_DB_PATH "_without_path" // awar is automatically updated when AWAR_DB_PATH changes 4 #define AWAR_DB "tmp/nt/arbdb/" 5 #define AWAR_DB_PATH AWAR_DB "file_name" 6 #define AWAR_DB_TYPE AWAR_DB "type" 7 #define AWAR_DB_FILTER AWAR_DB "filter" 8 #define AWAR_DB_NAME AWAR_DB_PATH "_without_path" // awar is automatically updated when AWAR_DB_PATH changes 9 7 10 #define AWAR_DEFAULT_ALIGNMENT "presets/use" 8 11 -
trunk/WINDOW/aw_preset.hxx
r6411 r6666 21 21 #define AWP_FONTSIZE_TEMPLATE "GCS/%s/MANAGE_GCS/%s/size" 22 22 23 void AW_save_ defaults(AW_window *aw); // use this if you're unsure24 void AW_save_specific_ defaults(AW_window *aw, const char *filename);23 void AW_save_properties(AW_window *aw); // use this if you're unsure 24 void AW_save_specific_properties(AW_window *aw, const char *filename); 25 25 26 26 AW_window *AW_preset_window(AW_root *root); -
trunk/WINDOW/aw_root.hxx
r6508 r6666 16 16 #endif 17 17 18 19 #define AW_ROOT_DEFAULT (aw_main_root_default) 18 #define AW_ROOT_DEFAULT AW_root::SINGLETON->check_properties(NULL) 19 20 20 class AW_root; 21 21 class AW_window; 22 typedef long AW_CL; // generic client data type (void *)22 typedef long AW_CL; // generic client data type (void *) 23 23 24 24 typedef void (*AW_RCB)(AW_root*, AW_CL, AW_CL); … … 36 36 typedef int AW_font; 37 37 38 extern AW_default aw_main_root_default;39 40 38 typedef struct _WidgetRec *Widget; 41 39 42 // #define AWUSE(variable) variable = variable43 40 #if defined(DEBUG) && defined(DEVEL_RALF) && 0 44 41 #define AWUSE(variable) (void)variable; int DONT_USE_AWUSE_FOR_##variable … … 180 177 181 178 class AW_root { 179 AW_default application_database; 180 181 void init_variables(AW_default database); 182 void exit_variables(); 183 184 void init_root(const char *programname, bool no_exit); 185 AW_default load_properties(const char *default_name); 186 182 187 public: 183 static AW_root *THIS; 184 AW_root_Motif *prvt; // Do not use !!! 185 bool value_changed; 186 long changer_of_variable; 187 int y_correction_for_input_labels; 188 AW_active global_mask; 189 GB_HASH *hash_table_for_variables; 190 bool variable_set_by_toggle_field; 191 int number_of_toggle_fields; 192 int number_of_option_menus; 193 char *program_name; 188 static AW_root *SINGLETON; 189 190 AW_root_Motif *prvt; // Do not use !!! 191 bool value_changed; 192 long changer_of_variable; 193 int y_correction_for_input_labels; 194 AW_active global_mask; 195 GB_HASH *hash_table_for_variables; 196 bool variable_set_by_toggle_field; 197 int number_of_toggle_fields; 198 int number_of_option_menus; 199 char *program_name; 194 200 195 201 void *get_aw_var_struct(char *awar); … … 204 210 205 211 // the read only public section: 206 AW_default application_database;207 212 short font_width; 208 213 short font_height; … … 211 216 212 217 // the real public section: 213 AW_root( );218 AW_root(const char *properties, const char *program, bool no_exit); 214 219 ~AW_root(); 220 215 221 enum { AW_MONO_COLOR, AW_RGB_COLOR } color_mode; 216 222 217 void init_variables(AW_default database);218 void init_root(const char *programname, bool no_exit);219 223 void main_loop(); 220 void process_events(); // might block 221 void process_pending_events(); // non-blocking 224 225 void process_events(); // might block 226 void process_pending_events(); // non-blocking 222 227 AW_ProcessEventType peek_key_event(AW_window *); 223 228 … … 245 250 void unlink_awars_from_DB(GBDATA *gb_main); // use before calling GB_close for 'gb_main', if you have AWARs in DB 246 251 247 AW_default open_default(const char *default_name, bool create_if_missing = true); 248 AW_error *save_default(const char *awar_name); 249 AW_error *save_default(const char *awar_name, const char *file_name); 250 AW_error *save_default(AW_default aw_default, const char *file_name); 251 AW_default get_default(const char *varname); 252 AW_default get_gbdata(const char *varname); 252 static const char *property_DB_fullname(const char *default_name); 253 static bool property_DB_exists(const char *default_name); 254 255 AW_default check_properties(AW_default aw_props) { 256 return aw_props ? aw_props : application_database; 257 } 258 259 GB_ERROR save_properties(const char *filename = NULL) __ATTR__USERESULT; 260 261 AW_default get_gbdata(const char *varname) __ATTR__DEPRECATED; // replace by awar + gb_var 262 253 263 254 264 // Control sensitivity of buttons etc.: … … 330 340 331 341 AW_awar(AW_VARIABLE_TYPE var_type, const char *var_name, const char *var_value, double var_double_value, AW_default default_file, AW_root *root); 342 ~AW_awar(); 332 343 333 344 AW_awar *add_callback(Awar_CB2 f, AW_CL cd1, AW_CL cd2); -
trunk/WINDOW/aw_window_Xm.hxx
r6383 r6666 74 74 AW_buttons_struct *next; 75 75 }; 76 77 struct AW_config_struct {78 AW_config_struct(const char *idi, AW_active maski, Widget w, const char *variable_namei, const char *variable_valuei, AW_config_struct *nexti);79 80 const char *id;81 AW_active mask;82 Widget widget;83 const char *variable_name;84 const char *variable_value;85 AW_config_struct *next;86 };87 88 76 89 77 struct AW_option_struct { … … 248 236 AW_buttons_struct *button_list; 249 237 250 AW_config_struct *config_list;251 AW_config_struct *last_config;252 253 238 AW_option_menu_struct *option_menu_list; 254 239 AW_option_menu_struct *last_option_menu; … … 279 264 GB_HASH *action_hash; 280 265 281 AW_root_Motif() {};282 ~AW_root_Motif() {};266 AW_root_Motif(); 267 ~AW_root_Motif(); 283 268 284 269 Widget get_last_widget() const { return last_widget; }
