maskfld.cpp Coreeta gestione date blank

msksheet.cpp Tolto sfarfallio nella update
sheet.cpp    Corretto focus sulla riga selezionata
sheet.h      Aggiunto last_browse_field_handler


git-svn-id: svn://10.65.10.50/trunk@2964 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1996-06-04 15:59:33 +00:00
parent 9c5985e45c
commit 767e337218
4 changed files with 46 additions and 18 deletions

View File

@ -3074,10 +3074,15 @@ const char* TDate_field::win2raw(
}
const char* TDate_field::reformat(const char* str) const
{
if (strlen(str) == 8)
str = TDate(str).string();
return str;
{
TString& s = _ctl_data._park;
s = str;
if (s.len() == 8)
s = TDate(str).string();
else
if (s.blank())
s.cut(0);
return s;
}
const char* TDate_field::raw2win(

View File

@ -324,7 +324,8 @@ TSpreadsheet::TSpreadsheet(
l->scroll_bar_button = TRUE;
l->fixed_columns = fixed_columns;
l->active_back_color = FOCUS_BACK_COLOR;
l->white_space_color = MASK_DARK_COLOR;
l->white_space_color = MASK_DARK_COLOR;
l->rule_color = MASK_BACK_COLOR;
// Definizione della prima colonna (numero di riga)
word attr = XI_ATR_RJUST;
@ -657,7 +658,7 @@ void TSpreadsheet::update(
{
if (rec < 0)
{
xi_cell_request(_obj); // Update cell values
// xi_cell_request(_obj); // Update cell values
int num = 0;
const long* handle = xi_get_list_info(_obj, &num);
@ -674,7 +675,6 @@ void TSpreadsheet::update(
xi_scroll(_obj, XI_SCROLL_FIRST);
else
xi_scroll_rec(_obj, handle[first], NORMAL_COLOR, XI_ATR_ENABLED | XI_ATR_AUTOSELECT, 0);
// xi_scroll(_obj, 0);
_needs_update = -1; // Clear pending row update
}

View File

@ -297,7 +297,7 @@ void TSheet_control::update(long n)
}
else
{
xi_cell_request(_obj);
// xi_cell_request(_obj);
int num = 0;
const long* handle = xi_get_list_info(_obj, &num);
@ -548,7 +548,7 @@ bool TSheet_control::event_handler(XI_OBJ* itf, XI_EVENT *xiev)
if (!_disabled[rec])
{
make_current(rec);
_sheet->on_key(K_ENTER);
_sheet->stop_run(K_ENTER);
}
else
refused = TRUE;
@ -620,8 +620,6 @@ bool TSheet_control::event_handler(XI_OBJ* itf, XI_EVENT *xiev)
{
if (check_enabled())
toggle(rec);
// XI_OBJ cell; XI_MAKE_CELL(&cell, _obj, row, col);
// xi_cell_request(&cell);
}
else
{
@ -642,6 +640,23 @@ bool TSheet_control::event_handler(XI_OBJ* itf, XI_EVENT *xiev)
if (xiev->v.xi_obj->type == XIT_LIST)
_sheet->on_key(K_INS);
break;
case XIE_XVT_EVENT:
if (xiev->v.xvte.type == E_CHAR)
{
const KEY k = e_char_to_key(&xiev->v.xvte);
switch (k)
{
case K_ENTER:
if (_disabled[_cur_rec])
break;
case K_ESC:
_sheet->stop_run(k);
break;
default:
break;
}
}
break;
default:
break;
}
@ -789,10 +804,6 @@ bool TSheet::on_key(KEY key)
{
switch(key)
{
case K_ENTER:
if (items() == 0) key = K_ESC;
if (selected() < 0 || !_sheet->row_enabled(selected()))
break;
case K_ESC:
stop_run(key);
break;
@ -1023,11 +1034,19 @@ bool TBrowse_sheet::browse_field_handler(TMask_field& f, KEY k)
} else
if (k == K_F2)
rec = 0;
if (rec >= 0)
if (rec >= 0 && rec != _cur_browse->selected())
_cur_browse->select(rec);
return TRUE;
}
bool TBrowse_sheet::last_browse_field_handler(TMask_field& f, KEY k)
{
const bool ok = browse_field_handler(f, k);
if (ok && k == K_TAB)
_cur_browse->post_select(_cur_browse->selected());
return ok;
}
TBrowse_sheet::TBrowse_sheet(TCursor* cursor, const char* fields,
const char* title, const char* head, byte buttons,
@ -1055,6 +1074,7 @@ TBrowse_sheet::TBrowse_sheet(TCursor* cursor, const char* fields,
TToken_string ids = f->browse()->get_input_fields();
TToken_string fns = f->browse()->get_input_field_names();
TEditable_field* e = NULL;
short y = 0;
for (const char* i = ids.get(0); i; i = ids.get())
{
@ -1085,7 +1105,6 @@ TBrowse_sheet::TBrowse_sheet(TCursor* cursor, const char* fields,
p.ltrim(a);
}
p.left_just(16);
TEditable_field* e = NULL;
switch (c.class_id())
{
case CLASS_EDIT_FIELD:
@ -1098,6 +1117,7 @@ TBrowse_sheet::TBrowse_sheet(TCursor* cursor, const char* fields,
e = &add_date (c.dlg(), 0, p, 1, y++, "");
break;
default:
e = NULL;
break;
}
if (e)
@ -1110,6 +1130,9 @@ TBrowse_sheet::TBrowse_sheet(TCursor* cursor, const char* fields,
}
}
}
if (e != NULL)
e->set_handler(last_browse_field_handler);
}
bool TBrowse_sheet::on_key(KEY k)

View File

@ -17,7 +17,6 @@ class TSheet : public TMask
// @access:(INTERNAL) Privete Member
{
friend class TSheet_control;
TSheet_control* _sheet; // Spreadsheet contenuto
TToken_string _park; // Ultima riga richiesta
@ -230,6 +229,7 @@ protected:
{ return *_field; }
static bool browse_field_handler(TMask_field& f, KEY k);
static bool last_browse_field_handler(TMask_field& f, KEY k);
// @access Public Member
public: