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:
parent
af43d798cd
commit
c09ac8f7a7
@ -63,7 +63,7 @@ void TMask::init_mask()
|
||||
{
|
||||
_msg_field = 0;
|
||||
_msg_key = 0;
|
||||
_sheets = _pages = 0; // Azzera numero pagine e sheets
|
||||
_pages = 0; // Azzera numero pagine
|
||||
_sheet = NULL; // Non appartiene a nessuno sheet
|
||||
|
||||
_enabled.set(MAX_PAGES);
|
||||
@ -547,6 +547,17 @@ TEdit_field& TMask::efield(short id) const
|
||||
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
|
||||
{
|
||||
TMask_field& f = field(id);
|
||||
@ -671,12 +682,6 @@ void TMask::handler(WINDOW win, EVENT* ep)
|
||||
{
|
||||
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:
|
||||
if (_last_sheet)
|
||||
_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 == "GO") return new TGolem_field(this);
|
||||
if (k == "BR") return new TBrowsefile_field(this);
|
||||
if (k == "SP")
|
||||
{
|
||||
_sheets++;
|
||||
return new TSheet_field(this);
|
||||
}
|
||||
if (k == "SP") return new TSheet_field(this);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
@ -875,7 +876,7 @@ WINDOW TMask::read_page(
|
||||
}
|
||||
else
|
||||
{
|
||||
scanner.rectangle(r);
|
||||
scanner.rectangle(r.left, r.top, r.right, r.bottom);
|
||||
if (toolbar)
|
||||
{
|
||||
tooly = r.top;
|
||||
@ -923,7 +924,7 @@ WINDOW TMask::read_page(
|
||||
}
|
||||
|
||||
while (scanner.popkey() != "EN")
|
||||
{
|
||||
{
|
||||
TMask_field* f = parse_field(scanner);
|
||||
#ifdef DBG
|
||||
if (f == NULL)
|
||||
|
@ -39,10 +39,9 @@ class TMask : public TWindow
|
||||
|
||||
// @access Protected Member
|
||||
protected:
|
||||
|
||||
// @ccost:(INTERNAL) MAX_PAGES | 16 | Massimo numero di pagine nella maschera
|
||||
enum { MAX_PAGES = 16 };
|
||||
|
||||
|
||||
// @cmember Gestisce gli eventi della finestra
|
||||
virtual void handler(WINDOW win, EVENT* ep);
|
||||
|
||||
@ -118,9 +117,6 @@ protected:
|
||||
// Aggiunge un campo all'array _field
|
||||
void add_field(TMask_field* f);
|
||||
|
||||
// @cmember:(INTERNAL) Numero di sheet contenuti nella maschera
|
||||
int _sheets;
|
||||
|
||||
// @cmember Legge i controlli relativi ad un campo
|
||||
void load_checks() const;
|
||||
// @cmember Inizializza la maschera (Chiamata quando la maschera parte)
|
||||
@ -212,8 +208,7 @@ public:
|
||||
int fields() const
|
||||
{ return _field.items(); }
|
||||
// @cmember Ritorna il numero di sheet della maschera
|
||||
int sheets() const
|
||||
{ return _sheets; }
|
||||
int sheets() const;
|
||||
|
||||
// @cmember Setta la modalita' di utilizzo della maschera
|
||||
void set_mode(int m)
|
||||
|
@ -508,11 +508,6 @@ bool TMask_field::on_key(KEY key)
|
||||
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)
|
||||
|
||||
// @doc EXTERNAL
|
||||
@ -1448,52 +1443,6 @@ bool TEditable_field::autoload(const TRelation& r)
|
||||
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
|
||||
///////////////////////////////////////////////////////////
|
||||
|
@ -306,9 +306,6 @@ public:
|
||||
// @cmember Gestisce la pressione del tasto (TRUE se la gestione ha avuto successo)
|
||||
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>
|
||||
virtual void set(const char* s);
|
||||
|
||||
@ -657,8 +654,6 @@ public:
|
||||
// @cmember Ritorna TRUE se il campo e' di tipo editable
|
||||
virtual bool is_editable() const { return TRUE; }
|
||||
|
||||
virtual bool on_clipboard(MENU_TAG mt);
|
||||
|
||||
TEditable_field(TMask* m);
|
||||
virtual ~TEditable_field();
|
||||
};
|
||||
|
@ -2255,7 +2255,7 @@ void TSheet_field::create(WINDOW parent)
|
||||
const TMask& m = mask();
|
||||
const TString head(_ctl_data._park);
|
||||
_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());
|
||||
if (!_flags.enable_default)
|
||||
|
@ -1,17 +1,11 @@
|
||||
#include <varmask.h>
|
||||
#include <utility.h>
|
||||
|
||||
HIDDEN TString __varmask_str;
|
||||
|
||||
const TString& TVariable_mask::get(short fld_id) const
|
||||
{
|
||||
if (present( fld_id ))
|
||||
return TMask::get( fld_id );
|
||||
else
|
||||
{
|
||||
__varmask_str.cut(0);
|
||||
return __varmask_str;
|
||||
}
|
||||
return EMPTY_STRING;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
if (scanner.key() == "SP")
|
||||
{
|
||||
_sheets++;
|
||||
return new TVariable_sheet_field(this);
|
||||
}
|
||||
|
||||
return TMask::parse_field(scanner);
|
||||
}
|
||||
|
||||
TVariable_mask::TVariable_mask(const char* name, int num, int max) : TMask()
|
||||
{
|
||||
|
||||
if (name && *name)
|
||||
read_mask(name, num, max);
|
||||
}
|
||||
|
@ -18,11 +18,11 @@ class TVariable_mask : public TMask
|
||||
{
|
||||
// @author:(INTERNAL) Matteo
|
||||
|
||||
protected:
|
||||
bool present( short fld_id ) const { return ( id2pos( fld_id ) >= 0 ); };
|
||||
protected:
|
||||
// @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
|
||||
virtual void check_field( short fld_id );
|
||||
// @cmember Costruttore (crea la maschera leggendo la descrizione dal file .msk)
|
||||
|
Loading…
x
Reference in New Issue
Block a user