Descrizione da ripristinare per commit rifatto

git-svn-id: svn://10.65.10.50/trunk@4306 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
augusto 1997-04-29 09:54:34 +00:00
parent 9649685092
commit bbb94e2cbd

View File

@ -165,9 +165,7 @@ public:
int add(TToken_string* s) int add(TToken_string* s)
{ return _str.add(s); } { return _str.add(s); }
// @cmember Inserisce un record in una posizione stabilita // @cmember Inserisce un record in una posizione stabilita
int insert(int rec); int insert(int rec, bool update_sheet, bool call_notify);
// @cmember Inserisce un record (da prgramma) in una posizione stabilita
int _insert(int rec, bool update_sheet = TRUE);
// @cmember Elimina il record <p rec> // @cmember Elimina il record <p rec>
bool destroy(int rec = -1, bool update_sheet = TRUE); bool destroy(int rec = -1, bool update_sheet = TRUE);
// @cmember Ritorna l'array di tutte le stringhe delle righe // @cmember Ritorna l'array di tutte le stringhe delle righe
@ -674,7 +672,9 @@ void TSpreadsheet::set_focus_cell(int riga, int colonna)
// @rdesc Ritorna la posizione nella quale e' stato inserito il record. Se non riesce ad inserirlo // @rdesc Ritorna la posizione nella quale e' stato inserito il record. Se non riesce ad inserirlo
// ritorna -1. // ritorna -1.
int TSpreadsheet::insert( int TSpreadsheet::insert(
int rec) // @parm Numero del record da inserire nello spreadsheet int rec, // @parm Numero del record da inserire nello spreadsheet
bool update_sheet, // @parm Chiama cell request
bool call_notify) // @parm Chiama funzione di notify
// @comm Non e' possibile inserire un nuovo record nel caso nello spreadsheet vi siano // @comm Non e' possibile inserire un nuovo record nel caso nello spreadsheet vi siano
// almeno 999 righe oppure se lo spreadsheet non e' attivo. // almeno 999 righe oppure se lo spreadsheet non e' attivo.
@ -696,17 +696,21 @@ int TSpreadsheet::insert(
ininsert = TRUE; ininsert = TRUE;
int r = rec < 0 ? items() : rec; int r = rec < 0 ? items() : rec;
const bool ok = notify(r, K_INS); const bool ok = call_notify ? notify(r, K_INS) : TRUE;
if (ok) if (ok)
{ {
r = _str.insert(new TToken_string(80), rec); r = _str.insert(new TToken_string(80), rec);
_property.insert(NULL, r); _property.insert(NULL, r);
// Notifica che l'inserimento h terminato // Notifica che l'inserimento e' terminato
xi_insert_row(_obj, INT_MAX); xi_insert_row(_obj, INT_MAX);
owner().post_insert(r); owner().post_insert(r);
notify(r, K_CTRL + K_INS);
xi_cell_request(_obj); if (call_notify)
notify(r, K_CTRL + K_INS);
if (update_sheet)
xi_cell_request(_obj);
} }
else else
r = -1; r = -1;
@ -716,33 +720,6 @@ int TSpreadsheet::insert(
// @doc INTERNAL // @doc INTERNAL
// @mfunc Inserisce un record (da programma) in una posizione stabilita
//
// @rdesc Ritorna la posizione nella quale e' stato inserito il record. Se non riesce ad inserirlo
// ritorna -1.
int TSpreadsheet::_insert(
int rec, // @parm Numero del record da inserire nello spreadsheet
bool update_sheet) // @parm Aggiornamento visuale dell sheet
// @comm Non e' possibile inserire un nuovo record nel caso nello spreadsheet vi siano
// almeno 999 righe oppure se lo spreadsheet non e' attivo.
{
if (items() >= 999)
return -1;
int r = _str.insert(new TToken_string(80), rec);
_property.insert(NULL, r);
owner().post_insert(r);
xi_insert_row(_obj, INT_MAX);
if (update_sheet)
xi_cell_request(_obj);
return r;
}
// @doc INTERNAL
// @mfunc Elimina una riga // @mfunc Elimina una riga
// //
// @rdesc Ritorna il risultato dell'operazione: // @rdesc Ritorna il risultato dell'operazione:
@ -1016,7 +993,7 @@ bool TSpreadsheet::event_handler(XI_OBJ* itf, XI_EVENT *xiev)
if (xiev->v.xi_obj->type == XIT_LIST) if (xiev->v.xi_obj->type == XIT_LIST)
{ {
owner().mask().notify_focus_field(owner().dlg()); owner().mask().notify_focus_field(owner().dlg());
insert(-1); insert(-1, TRUE, TRUE);
} }
} }
break; break;
@ -1302,7 +1279,7 @@ bool TSpreadsheet::event_handler(XI_OBJ* itf, XI_EVENT *xiev)
break; break;
case K_CTRL + '+': case K_CTRL + '+':
owner().mask().notify_focus_field(owner().dlg()); owner().mask().notify_focus_field(owner().dlg());
insert(-1); insert(-1, TRUE, TRUE);
refused = TRUE; refused = TRUE;
break; break;
case K_CTRL + 'A': case K_CTRL + 'A':
@ -2076,9 +2053,9 @@ void TSheet_field::destroy(int r, bool update_sheet)
} }
// Certified 100% // Certified 100%
int TSheet_field::insert(int r, bool update_sheet) int TSheet_field::insert(int r, bool update_sheet, bool call_notify)
{ {
return ((TSpreadsheet*)_ctl)->_insert(r, update_sheet); return ((TSpreadsheet*)_ctl)->insert(r, update_sheet, call_notify);
} }
void TSheet_field::parse_head(TScanner& scanner) void TSheet_field::parse_head(TScanner& scanner)