campo-sirio/include/varmask.h

82 lines
2.6 KiB
C
Raw Normal View History

#ifndef __VARMASK_H
#define __VARMASK_H
#include <mask.h>
#include <msksheet.h>
// @doc EXTERNAL
// @type SPREADSHEET_GETMASK | Prototipo funzione che ritorna una maschera di edit diversa a seconda della riga
typedef TMask* (*SPREADSHEET_GETMASK)( int numriga, TMask& fullmask);
// @doc EXTERNAL
// @class TVariable_mask | Maschere con spreadsheet a righe variabili e con campi virtuali
//
// @base public | TMask
class TVariable_mask : public TMask
{
// @author:(INTERNAL) Matteo
protected:
bool present( short fld_id ) const { return ( id2pos( fld_id ) >= 0 ); };
public:
// @cmember Esegue il check e i messaggi sul campo <p fld_id> della maschera
virtual void check_field( short fld_id );
// @cmember Costruttore (crea la maschera leggendo la descrizione dal file .msk)
TVariable_mask( const char* name, int num = 0, int max = MAX_PAGES);
// @cmember Setta il campo con una stringa
virtual void set(short fld_id, const char* str, bool hit=FALSE);
// @cmember Ritorna il contenuto del campo <p fld_id> sotto forma di stringa
virtual const TString& get(short fld_id) const;
// @cmember Definisce l'handler del campo <p fld_id>
virtual void set_handler(short fld_id, CONTROL_HANDLER handler);
// @cmember Permette di mostrare/nascondere un campo
virtual void show(short fld_id = -1, bool on = TRUE);
// @cmember Abilita/disabilita un campo
virtual void enable(short fld_id, bool on = TRUE);
// @cmember Legge il campo da file
virtual TMask_field* parse_field(TScanner& scanner);
// @cmember Distruttore
virtual ~TVariable_mask() {}
};
// @doc EXTERNAL
// @class TVariable_sheet_field | Classe per la gestione dei campi di uno spreadsheet con righe variabili
//
// @base public | TSheet_field
class TVariable_sheet_field : public TSheet_field
{
// @author:(INTERNAL) Alex + Guido
// @cmember:(INTERNAL) Funzione per l'apertura della maschera di edit della riga
// (vedi <t SPREADSHEET_GETMASK>)
SPREADSHEET_GETMASK _getmask;
protected:
public:
// @cmember Setta il membro <p _set_getmask> con il valore <p n>
void set_getmask(SPREADSHEET_GETMASK n)
{ _getmask = n; }
// @cmember Funzione eseguita dopo ogni insert
virtual void post_insert(int r);
// @cmember Ritorna la maschera corrispondente ad una riga dello spreadsheet
virtual TMask& sheet_mask() const;
// @cmember Costruttore
TVariable_sheet_field(TMask* m) : TSheet_field(m)
{}
// @cmember Distruttore
virtual ~TVariable_sheet_field();
};
#endif