From 0d179a37c686c7e0a343709ca67510cee4a74cab Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 3 Aug 1995 13:56:34 +0000 Subject: [PATCH] Modifica 95/3 Modificato l' append delle righe per poterle inserire anche in mezzo ad uno sheet git-svn-id: svn://10.65.10.50/trunk@1668 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- include/msksheet.cpp | 21 +++++++++++++++------ include/msksheet.h | 3 +++ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/include/msksheet.cpp b/include/msksheet.cpp index 1457e4f52..0220d3b03 100755 --- a/include/msksheet.cpp +++ b/include/msksheet.cpp @@ -400,7 +400,9 @@ void TSpreadsheet::set_focus_cell(int riga, int colonna) int TSpreadsheet::insert(int rec) { if (items() >= 999 || !_active) - return -1; + return -1; + if (rec < 0 && items() > 0 && !_owner->append() ) + rec = _cur_rec + 1; const int r = _str.insert(new TToken_string(80), rec); const bool ok = notify(r, K_INS); @@ -411,10 +413,13 @@ int TSpreadsheet::insert(int rec) return -1; } - _disabled.insert(NULL, r); + _disabled.insert(NULL, r); xi_insert_row(_list, INT_MAX); - xi_cell_request(_list); + xi_cell_request(_list); + if (rec < 0) _cur_row = items() - 1; + else + _cur_row = rec; return r; } @@ -628,10 +633,14 @@ void TSpreadsheet::list_handler(XI_EVENT *xiev) update_rec(_cur_rec); _row_dirty = TRUE; } else - if (k == K_DEL) + if (k == K_DEL) + { _row_dirty = _cell_dirty = FALSE; + if (_cur_rec >= items()) + _cur_rec = items() - 1; + } - if (!cell_disabled(_cur_rec, _cur_col-1)) + if (_cur_rec >= 0 && !cell_disabled(_cur_rec, _cur_col-1)) set_focus_cell(_cur_row, _cur_col); _check_enabled = TRUE; } @@ -1224,7 +1233,7 @@ else // Certified 100% TSheet_field::TSheet_field(TMask* m) -: TMask_field(m), _sheet(NULL) +: TMask_field(m), _sheet(NULL), _append(TRUE) {} // Certified 100% diff --git a/include/msksheet.h b/include/msksheet.h index 2ab108308..86bc4f182 100755 --- a/include/msksheet.h +++ b/include/msksheet.h @@ -14,6 +14,7 @@ class TSheet_field : public TMask_field { TSpreadsheet* _sheet; TToken_string _head; + bool _append; protected: virtual word class_id() const; @@ -50,6 +51,8 @@ public: void enable_cell(int row, int column, bool on = TRUE); void disable_cell(int row, int column) { enable_cell(row, column, FALSE); } bool cell_disabled(int row, int column) const; + void set_append(bool on = TRUE) { _append = on;} + bool append() const { return _append;} TSheet_field(TMask* m); virtual ~TSheet_field();