ba1600.cpp Usate mitiche macro di iterazione sugli sheet

git-svn-id: svn://10.65.10.50/trunk@5566 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1997-11-06 10:47:15 +00:00
parent e8ab85527c
commit d0932e34a6

View File

@ -11,7 +11,8 @@
#include "ba1600.h" #include "ba1600.h"
#include "ba1600a.h" #include "ba1600a.h"
#define FOR_EACH_SHEET_ROW(sheet, row) TToken_string* row; for (int __row = 0; __row < sheet.items() && (const char*)(row = &sheet.row(__row)); __row++) #define FOR_EACH_SHEET_ROW(__sheet, __r, __riga) TToken_string* __riga; for (int __r = 0; __r < __sheet.items() && (const char*)(__riga = &__sheet.row(__r)); __r++)
#define FOR_EACH_SHEET_ROW_BACK(__sheet, __r, __riga) TToken_string* __riga; for (int __r = __sheet.items()-1; __r >= 0 && (const char*)(__riga = &__sheet.row(__r)); __r--)
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
// Configurazione per installazione // Configurazione per installazione
@ -157,27 +158,27 @@ public:
bool TModule_mask::find(const TString& name) const bool TModule_mask::find(const TString& name) const
{ {
TSheet_field& sf = sfield(F_SHEET); TSheet_field& sf = sfield(F_SHEET);
FOR_EACH_SHEET_ROW(sf, row) FOR_EACH_SHEET_ROW_BACK(sf, r, row)
{ {
if (name.compare(row->get(0), -1, TRUE) == 0) if (name.compare(row->get(0), -1, TRUE) == 0)
break; break;
} }
return m >= 0; return r >= 0;
} }
// Toglie il file dallo sheet dei mancanti // Toglie il file dallo sheet dei mancanti
bool TModule_mask::kill_missing(const char* name, bool update) bool TModule_mask::kill_missing(const char* name, bool update)
{ {
TSheet_field& miss = sfield(F_MISSING); TSheet_field& miss = sfield(F_MISSING);
FOR_EACH_SHEET_ROW(miss, row) FOR_EACH_SHEET_ROW_BACK(miss, r, row)
{ {
if (row->compare(name, -1, TRUE) == 0) if (row->compare(name, -1, TRUE) == 0)
{ {
miss.destroy(__row, update); miss.destroy(r, update);
break; break;
} }
} }
return m >= 0; return r >= 0;
} }
bool TModule_mask::sheet_notify(TSheet_field& sf, int r, KEY key) bool TModule_mask::sheet_notify(TSheet_field& sf, int r, KEY key)
@ -275,13 +276,13 @@ bool TModule_mask::missing_notify(TSheet_field& sf, int r, KEY key)
TMask& mainmask = sf.mask(); TMask& mainmask = sf.mask();
TSheet_field& sheet = mainmask.sfield(F_SHEET); TSheet_field& sheet = mainmask.sfield(F_SHEET);
FOR_EACH_SHEET_ROW(sf, row) FOR_EACH_SHEET_ROW(sf, idx, riga)
{ {
TToken_string& newrow = sheet.row(-1); TToken_string& newrow = sheet.row(-1);
newrow = *row; newrow = *riga;
TString16 submod = newrow.left(2); TString16 submod = newrow.left(2);
submod << '0'; submod << '0';
newrow.add(submod); newrow.add(submod, 2);
} }
sf.destroy(); sf.destroy();
@ -370,16 +371,8 @@ bool TModule_mask::deselect_handler(TMask_field& f, KEY k)
if (k == K_SPACE) if (k == K_SPACE)
{ {
TSheet_field& sheet = f.mask().sfield(F_SHEET); TSheet_field& sheet = f.mask().sfield(F_SHEET);
FOR_EACH_SHEET_ROW_BACK(sheet, r, row)
// for (int r = sheet.items()-1; r >= 0; r--)
// {
// sheet.row(r).add(" ", 1);
// }
FOR_EACH_SHEET_ROW(sheet, row)
{
row->add(" ", 1); row->add(" ", 1);
}
sheet.force_update(); sheet.force_update();
} }
@ -415,7 +408,7 @@ void TModule_mask::load(const char* module)
bool ok = TRUE; bool ok = TRUE;
for (int e = 0; bad_ext[e]; e++) for (int e = 0; bad_ext[e]; e++)
{ {
if (ext.compare(bad_ext[e], -1, TRUE) == 0) if (ext == bad_ext[e])
{ {
ok = FALSE; ok = FALSE;
break; break;