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 "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
@ -157,27 +158,27 @@ public:
bool TModule_mask::find(const TString& name) const
{
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)
break;
}
return m >= 0;
return r >= 0;
}
// Toglie il file dallo sheet dei mancanti
bool TModule_mask::kill_missing(const char* name, bool update)
{
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)
{
miss.destroy(__row, update);
miss.destroy(r, update);
break;
}
}
return m >= 0;
return r >= 0;
}
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();
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);
newrow = *row;
newrow = *riga;
TString16 submod = newrow.left(2);
submod << '0';
newrow.add(submod);
newrow.add(submod, 2);
}
sf.destroy();
@ -370,16 +371,8 @@ bool TModule_mask::deselect_handler(TMask_field& f, KEY k)
if (k == K_SPACE)
{
TSheet_field& sheet = f.mask().sfield(F_SHEET);
// for (int r = sheet.items()-1; r >= 0; r--)
// {
// sheet.row(r).add(" ", 1);
// }
FOR_EACH_SHEET_ROW(sheet, row)
{
FOR_EACH_SHEET_ROW_BACK(sheet, r, row)
row->add(" ", 1);
}
sheet.force_update();
}
@ -407,15 +400,15 @@ void TModule_mask::load(const char* module)
"res", "sbr", "vcw", "wsp", NULL };
for (int index = arr.items()-1; index >= 0; index--)
{
mask = arr.row(index);
{
mask = arr.row(index);
mask.lower();
const TString16 ext = mask.ext();
bool ok = TRUE;
for (int e = 0; bad_ext[e]; e++)
{
if (ext.compare(bad_ext[e], -1, TRUE) == 0)
if (ext == bad_ext[e])
{
ok = FALSE;
break;