mask.h Tolto membro int _sheets che teneva il conto degli

spreadsheets contenuti in una maschera che richiedeva di
             essere aggiornato da tutte le maschere derivate
mask.cpp     Modificato metodo sheets() che conta gli sheet presenti
             semplificando la vita alle maschere derivate
             Gestione menu di modifica
msksheet.cpp Adeguato uso del metodo TMask::sheets()
varmask.h    Modificata indentazione
varmask.cpp  Adeguato uso del metodo TMask::sheets()
             Tolta stringa statica var_mask_str
maskfld.*    Tolti metodi obsoleti on_clipboard


git-svn-id: svn://10.65.10.50/trunk@6042 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1998-01-28 08:45:59 +00:00
parent af43d798cd
commit c09ac8f7a7
7 changed files with 23 additions and 93 deletions

View File

@ -63,7 +63,7 @@ void TMask::init_mask()
{ {
_msg_field = 0; _msg_field = 0;
_msg_key = 0; _msg_key = 0;
_sheets = _pages = 0; // Azzera numero pagine e sheets _pages = 0; // Azzera numero pagine
_sheet = NULL; // Non appartiene a nessuno sheet _sheet = NULL; // Non appartiene a nessuno sheet
_enabled.set(MAX_PAGES); _enabled.set(MAX_PAGES);
@ -547,6 +547,17 @@ TEdit_field& TMask::efield(short id) const
return (TEdit_field&)f; return (TEdit_field&)f;
} }
int TMask::sheets() const
{
int count = 0;
for (int f = fields()-1; f >= 0; f--)
{
if (fld(f).is_sheet())
count++;
}
return count;
}
TSheet_field& TMask::sfield(short id) const TSheet_field& TMask::sfield(short id) const
{ {
TMask_field& f = field(id); TMask_field& f = field(id);
@ -671,12 +682,6 @@ void TMask::handler(WINDOW win, EVENT* ep)
{ {
switch (ep->v.cmd.tag) switch (ep->v.cmd.tag)
{ {
case M_EDIT_CUT:
case M_EDIT_COPY:
case M_EDIT_PASTE:
case M_EDIT_CLEAR:
focus_field().on_clipboard(ep->v.cmd.tag);
break;
case M_EDIT_UNDO: case M_EDIT_UNDO:
if (_last_sheet) if (_last_sheet)
_last_sheet->reset_columns_order(); _last_sheet->reset_columns_order();
@ -841,11 +846,7 @@ TMask_field* TMask::parse_field(TScanner& scanner)
if (k == "ZO") return new TZoom_field(this); if (k == "ZO") return new TZoom_field(this);
if (k == "GO") return new TGolem_field(this); if (k == "GO") return new TGolem_field(this);
if (k == "BR") return new TBrowsefile_field(this); if (k == "BR") return new TBrowsefile_field(this);
if (k == "SP") if (k == "SP") return new TSheet_field(this);
{
_sheets++;
return new TSheet_field(this);
}
return NULL; return NULL;
} }
@ -875,7 +876,7 @@ WINDOW TMask::read_page(
} }
else else
{ {
scanner.rectangle(r); scanner.rectangle(r.left, r.top, r.right, r.bottom);
if (toolbar) if (toolbar)
{ {
tooly = r.top; tooly = r.top;

View File

@ -39,7 +39,6 @@ class TMask : public TWindow
// @access Protected Member // @access Protected Member
protected: protected:
// @ccost:(INTERNAL) MAX_PAGES | 16 | Massimo numero di pagine nella maschera // @ccost:(INTERNAL) MAX_PAGES | 16 | Massimo numero di pagine nella maschera
enum { MAX_PAGES = 16 }; enum { MAX_PAGES = 16 };
@ -118,9 +117,6 @@ protected:
// Aggiunge un campo all'array _field // Aggiunge un campo all'array _field
void add_field(TMask_field* f); void add_field(TMask_field* f);
// @cmember:(INTERNAL) Numero di sheet contenuti nella maschera
int _sheets;
// @cmember Legge i controlli relativi ad un campo // @cmember Legge i controlli relativi ad un campo
void load_checks() const; void load_checks() const;
// @cmember Inizializza la maschera (Chiamata quando la maschera parte) // @cmember Inizializza la maschera (Chiamata quando la maschera parte)
@ -212,8 +208,7 @@ public:
int fields() const int fields() const
{ return _field.items(); } { return _field.items(); }
// @cmember Ritorna il numero di sheet della maschera // @cmember Ritorna il numero di sheet della maschera
int sheets() const int sheets() const;
{ return _sheets; }
// @cmember Setta la modalita' di utilizzo della maschera // @cmember Setta la modalita' di utilizzo della maschera
void set_mode(int m) void set_mode(int m)

View File

@ -508,11 +508,6 @@ bool TMask_field::on_key(KEY key)
return TRUE; return TRUE;
} }
bool TMask_field::on_clipboard(MENU_TAG mt)
{
return FALSE;
}
#define build_msg() char* _msg = (char*)(const char*)_ctl_data._park;va_list argptr;va_start(argptr,fmt);vsprintf(_msg,fmt,argptr);va_end(argptr) #define build_msg() char* _msg = (char*)(const char*)_ctl_data._park;va_list argptr;va_start(argptr,fmt);vsprintf(_msg,fmt,argptr);va_end(argptr)
// @doc EXTERNAL // @doc EXTERNAL
@ -1448,52 +1443,6 @@ bool TEditable_field::autoload(const TRelation& r)
return _field != NULL; return _field != NULL;
} }
bool TEditable_field::on_clipboard(MENU_TAG mt)
{
bool ok = FALSE;
switch (mt)
{
case M_EDIT_COPY:
case M_EDIT_CUT:
if (xvt_cb_open(TRUE))
{
const TString& str = get_window_data();
const long size = str.len()+1;
char* p = xvt_cb_alloc_data(size);
if (p != NULL)
{
strcpy(p, str);
ok = xvt_cb_put_data(CB_TEXT, NULL, size, (PICTURE)0) != FALSE;
xvt_cb_free_data();
if (ok && mt == M_EDIT_CUT)
reset();
}
xvt_cb_close();
}
break;
case M_EDIT_PASTE:
if (xvt_cb_open(FALSE))
{
long size;
const char* const p = xvt_cb_get_data(CB_TEXT, NULL, &size);
if (p && size > 0)
{
set(p);
ok = TRUE;
}
xvt_cb_close();
}
break;
case M_EDIT_CLEAR:
reset();
ok = TRUE;
break;
default:
break;
}
return ok;
}
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
// Boolean_field // Boolean_field
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////

View File

@ -306,9 +306,6 @@ public:
// @cmember Gestisce la pressione del tasto (TRUE se la gestione ha avuto successo) // @cmember Gestisce la pressione del tasto (TRUE se la gestione ha avuto successo)
virtual bool on_key(KEY key); virtual bool on_key(KEY key);
// @cmember Gestisce un'operazione della clipboard (M_EDIT_CUT, M_EDITCOPY, M_EDITPASTE)
virtual bool on_clipboard(MENU_TAG mt);
// @cmember Setta il contenuto del campo inserendo la stringa <p s> // @cmember Setta il contenuto del campo inserendo la stringa <p s>
virtual void set(const char* s); virtual void set(const char* s);
@ -657,8 +654,6 @@ public:
// @cmember Ritorna TRUE se il campo e' di tipo editable // @cmember Ritorna TRUE se il campo e' di tipo editable
virtual bool is_editable() const { return TRUE; } virtual bool is_editable() const { return TRUE; }
virtual bool on_clipboard(MENU_TAG mt);
TEditable_field(TMask* m); TEditable_field(TMask* m);
virtual ~TEditable_field(); virtual ~TEditable_field();
}; };

View File

@ -2255,7 +2255,7 @@ void TSheet_field::create(WINDOW parent)
const TMask& m = mask(); const TMask& m = mask();
const TString head(_ctl_data._park); const TString head(_ctl_data._park);
_ctl = new TSpreadsheet(parent, dlg(), _ctl_data._x, _ctl_data._y, _ctl_data._width, _ctl_data._height, _ctl = new TSpreadsheet(parent, dlg(), _ctl_data._x, _ctl_data._y, _ctl_data._width, _ctl_data._height,
m.source_file(), m.sheets(), head, this); m.source_file(), m.sheets()+1, head, this);
_ctl->show(shown()); _ctl->show(shown());
if (!_flags.enable_default) if (!_flags.enable_default)

View File

@ -1,17 +1,11 @@
#include <varmask.h> #include <varmask.h>
#include <utility.h>
HIDDEN TString __varmask_str;
const TString& TVariable_mask::get(short fld_id) const const TString& TVariable_mask::get(short fld_id) const
{ {
if (present( fld_id )) if (present( fld_id ))
return TMask::get( fld_id ); return TMask::get( fld_id );
else else
{ return EMPTY_STRING;
__varmask_str.cut(0);
return __varmask_str;
}
} }
void TVariable_mask::set_handler(short fld_id, CONTROL_HANDLER handler) void TVariable_mask::set_handler(short fld_id, CONTROL_HANDLER handler)
@ -47,17 +41,13 @@ void TVariable_mask::check_field( short fld_id )
TMask_field* TVariable_mask::parse_field(TScanner& scanner) TMask_field* TVariable_mask::parse_field(TScanner& scanner)
{ {
if (scanner.key() == "SP") if (scanner.key() == "SP")
{
_sheets++;
return new TVariable_sheet_field(this); return new TVariable_sheet_field(this);
}
return TMask::parse_field(scanner); return TMask::parse_field(scanner);
} }
TVariable_mask::TVariable_mask(const char* name, int num, int max) : TMask() TVariable_mask::TVariable_mask(const char* name, int num, int max) : TMask()
{ {
if (name && *name) if (name && *name)
read_mask(name, num, max); read_mask(name, num, max);
} }

View File

@ -19,10 +19,10 @@ class TVariable_mask : public TMask
// @author:(INTERNAL) Matteo // @author:(INTERNAL) Matteo
protected: protected:
bool present( short fld_id ) const { return ( id2pos( fld_id ) >= 0 ); }; // @cmember Controlla se il campo <p fld_id> esiste
bool present(short fld_id) const { return id2pos(fld_id) >= 0; }
public: public:
// @cmember Esegue il check e i messaggi sul campo <p fld_id> della maschera // @cmember Esegue il check e i messaggi sul campo <p fld_id> della maschera
virtual void check_field( short fld_id ); virtual void check_field( short fld_id );
// @cmember Costruttore (crea la maschera leggendo la descrizione dal file .msk) // @cmember Costruttore (crea la maschera leggendo la descrizione dal file .msk)