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:
parent
9c5985e45c
commit
767e337218
@ -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(
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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:
|
||||
|
Loading…
x
Reference in New Issue
Block a user