Aggiunto controllo di abilitazione dei moduli corrispondenti ad

ogni singola voce di menu inferendolo dalle prime due lettere


git-svn-id: svn://10.65.10.50/trunk@5647 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1997-11-20 08:12:36 +00:00
parent 1ea0f9dc35
commit 620354eed9

View File

@ -1368,7 +1368,7 @@ bool TMenu_application::choose_colors()
TColor_mask * cm = new TColor_mask(); TColor_mask * cm = new TColor_mask();
if (cm->run() == K_ENTER) if (cm->run() == K_ENTER)
{ {
cm->save_colors(); // Aggiorna config cm->save_colors(); // Aggiorna config
customize_colors(); // Aggiorna set di colori customize_colors(); // Aggiorna set di colori
reload_images(); // Aggiorna bitmaps del menu reload_images(); // Aggiorna bitmaps del menu
@ -1387,7 +1387,9 @@ bool TMenu_application::choose_colors()
} }
HIDDEN bool browse_file_handler(TMask_field& f, KEY k) HIDDEN bool browse_file_handler(TMask_field& f, KEY k)
{ {
bool ok = TRUE;
if (k == K_F9) if (k == K_F9)
{ {
FILE_SPEC fs; memset(&fs, 0, sizeof(FILE_SPEC)); FILE_SPEC fs; memset(&fs, 0, sizeof(FILE_SPEC));
@ -1395,19 +1397,34 @@ HIDDEN bool browse_file_handler(TMask_field& f, KEY k)
strcpy(fs.type, "EXE"); strcpy(fs.type, "EXE");
strcpy(fs.name, f.get()); strcpy(fs.name, f.get());
strcpy(fs.creator, "ba0"); strcpy(fs.creator, "ba0");
xvt_fsys_save_dir(); DIRECTORY dir;
if (xvt_dm_post_file_open(&fs, "Selezione programma") == FL_OK) xvt_fsys_get_dir(&dir);
const int err = xvt_dm_post_file_open(&fs, "Selezione programma");
xvt_fsys_set_dir(&dir);
if (err == FL_OK)
{ {
TFilename n; TFilename n;
xvt_fsys_convert_dir_to_str(&fs.dir, n.get_buffer(n.size()), n.size()); xvt_fsys_convert_dir_to_str(&fs.dir, n.get_buffer(), n.size());
n.add(fs.name); n.add(fs.name);
f.set(n); f.set(n);
xvt_fsys_restore_dir();
} }
} }
return TRUE; if (k == K_TAB && f.focusdirty())
{
TFilename infile(f.get());
if (infile.not_empty())
{
TFilename outfile;
if (*infile.ext() == '\0')
infile.ext("exe");
if (!infile.search_in_path(outfile))
ok = error_box("Il programma %s non esiste!", (const char*)infile);
}
}
return ok;
} }
HIDDEN bool link_notify(TSheet_field& s, int r, KEY k) HIDDEN bool link_notify(TSheet_field& s, int r, KEY k)
@ -1435,29 +1452,25 @@ bool TMenu_application::choose_editors()
sm.set_handler(102, browse_file_handler); sm.set_handler(102, browse_file_handler);
TAssoc_array& var = (TAssoc_array&)link.list_variables(); TAssoc_array& var = (TAssoc_array&)link.list_variables();
var.restart(); FOR_EACH_ASSOC_STRING(var, obj, key, str)
for (THash_object* hobj = var.get_hashobj(); hobj; hobj = var.get_hashobj())
{ {
TToken_string& row = sheet.row(-1); TToken_string& row = sheet.row(-1);
row = hobj->key(); row = key;
row.lower(); row.lower();
if (row.compare("txt", -1, TRUE) == 0) row.add(str);
sheet.disable_cell(sheet.items()-1, 0);
row.add((TString&)hobj->obj());
} }
sheet.rows_array().sort();
if (m.run() == K_ENTER) if (m.run() == K_ENTER)
{ {
link.remove_all(); link.remove_all();
for (int r = sheet.items()-1; r >= 0; r--) FOR_EACH_SHEET_ROW_BACK(sheet, r, row)
{ {
TToken_string& row = sheet.row(r); TString16 ext = row->get(0);
TString16 ext = row.get(0);
if (!ext.blank()) if (!ext.blank())
{ {
ext.lower(); ext.lower();
TFilename prg = row.get(); TFilename prg = row->get();
link.set(ext, prg); link.set(ext, prg);
} }
} }