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
					
				@ -3075,9 +3075,14 @@ 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(
 | 
			
		||||
 | 
			
		||||
@ -325,6 +325,7 @@ TSpreadsheet::TSpreadsheet(
 | 
			
		||||
  l->fixed_columns = fixed_columns;
 | 
			
		||||
  l->active_back_color = FOCUS_BACK_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