msksheet.cpp Aggiunto parametro di scroll alla select msksheet.h " rmov.h Aggiunto rowtype git-svn-id: svn://10.65.10.50/trunk@2436 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			143 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			143 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
#ifndef __MSKSHEET_H
 | 
						|
#define __MSKSHEET_H
 | 
						|
 | 
						|
#ifndef __MASK_H
 | 
						|
#include <mask.h>
 | 
						|
#endif
 | 
						|
 | 
						|
#define K_ROWEDIT       ( K_CTRL + 'I' )
 | 
						|
 | 
						|
// @doc EXTERNAL
 | 
						|
class TSheet_field;
 | 
						|
 | 
						|
// @type SPREADSHEET_NOTIFY | Gestisce l'ingresso, l'uscita e la modifica da una riga dello sheet
 | 
						|
typedef bool (*SPREADSHEET_NOTIFY)(TSheet_field& s, int r, KEY k);
 | 
						|
// @type SPREADSHEET_GETMASK | Ritorna una maschera di edit diversa a seconda della riga
 | 
						|
typedef TMask* (*SPREADSHEET_GETMASK)( int numriga, TMask& fullmask, bool destroy );
 | 
						|
 | 
						|
// @class TSheet_field | Classe per la gestione dei campi di uno spreadsheet
 | 
						|
//
 | 
						|
// @base public | TMask_field
 | 
						|
class TSheet_field : public TMask_field
 | 
						|
{
 | 
						|
  // @author:(INTERNAL) Guido
 | 
						|
 | 
						|
  friend class TSpreadsheet;
 | 
						|
 | 
						|
  // @access Private Member
 | 
						|
 | 
						|
  // @cmember Spreadsheet di apprtenenza dei campi
 | 
						|
  TSpreadsheet* _sheet;
 | 
						|
  // @cmember Intestazione di tutte le colonne
 | 
						|
  TToken_string _head;
 | 
						|
  // @cmember Indica se aggiungere a fondo dello spreadsheet o nella riga in cui ti trovi
 | 
						|
  bool _append;
 | 
						|
 | 
						|
  // @access Protected Member
 | 
						|
protected:
 | 
						|
  // @cmember Ritorna l'identificatore della classe
 | 
						|
  virtual word class_id() const;
 | 
						|
  // @cmember Gestisce la chiamata all'handler del campo
 | 
						|
  virtual bool on_hit();
 | 
						|
  // @cmember Gestisce la pressione del tasto (TRUE se la gestione ha avuto successo)
 | 
						|
  virtual bool on_key(KEY k);
 | 
						|
  // @cmember Ritorna TRUE se il campo puo' lasciare il focus
 | 
						|
  virtual bool test_focus_change(); 
 | 
						|
  
 | 
						|
  // @cmember Legge la testata dello spreadsheet da <p scanner>
 | 
						|
  virtual void parse_head(TScanner& scanner);
 | 
						|
  // @cmember Legge gli item dello spreadsheet da <p scanner>
 | 
						|
  virtual bool parse_item(TScanner& scanner);
 | 
						|
  // @cmember Crea lo spreadsheet
 | 
						|
  virtual void create(WINDOW parent);
 | 
						|
 | 
						|
  // @cmember Setta il focus sul campo
 | 
						|
  virtual void highlight() const;
 | 
						|
  // @cmember Permette di settare il valore del cambio del campo
 | 
						|
  virtual void exchange(bool show_value, const real& n);  
 | 
						|
 | 
						|
  // @access Public Member
 | 
						|
public:
 | 
						|
  // @cmember Ritorna una riga dello spreadsheet
 | 
						|
  TToken_string& row(int n);
 | 
						|
  // @cmember Ritorna un array con tutte le righe dello spreadsheet
 | 
						|
  TString_array& rows_array() const;
 | 
						|
  // @cmember Ritrna l'elemento <p c>-esimo della riga <p r>
 | 
						|
  const char* cell(int r, int c)
 | 
						|
  { return row(r).get(c); }
 | 
						|
 | 
						|
  // @cmember Ritorna la prima riga vuota nello spreadsheet
 | 
						|
  int first_empty() const;
 | 
						|
  // @cmember Ritorna il numero di righe presenti nello spreadsheet
 | 
						|
  int items() const;
 | 
						|
  // @cmember Ritorna il numero della riga corrente
 | 
						|
  int selected() const;
 | 
						|
  // @cmember Seleziona la riga <p r> come quella corrente
 | 
						|
  void select(int r, bool scrollto = FALSE);
 | 
						|
 | 
						|
  // @cmember Vuota tutto lo spreadsheet
 | 
						|
  virtual void reset();
 | 
						|
  // @cmember Abilita/disabilita tutto lo spreadsheet (vedi <mf TMask_field::enable>)
 | 
						|
  virtual void enable(bool on);
 | 
						|
  // @cmember Ritorna lo stato di abilitazione dello spreadsheet (vedi <mf TMask_field::enabled>)
 | 
						|
  virtual bool enabled() const;
 | 
						|
  
 | 
						|
  // @cmember Aggiorna le righe dello spreadsheet con i valori salvati una volta che non ci sono
 | 
						|
  //              piu' processi attivi
 | 
						|
  void on_idle();
 | 
						|
 | 
						|
  // @cmember Elimina una riga
 | 
						|
  void destroy(int r = -1, bool update_sheet = TRUE);
 | 
						|
  // @cmember Forza l'aggiornamento dei dati della riga sullo schermo
 | 
						|
  void force_update(int r = -1);
 | 
						|
 | 
						|
  // @cmember Ritorna la maschera corrispondente ad una riga dello spreadsheet
 | 
						|
  TMask& sheet_mask() const;
 | 
						|
  // @cmember Setta il membro <p _notify> della classe <c TSpreadsheet>
 | 
						|
  void set_notify(SPREADSHEET_NOTIFY n);
 | 
						|
  // @cmember Setta il membro <p _set_getmask> della classe <c TSpreadsheet>
 | 
						|
  void set_getmask(SPREADSHEET_GETMASK n);
 | 
						|
  
 | 
						|
  // @cmember Abilita/disabilita una colonna dello spreadsheet (vedi <mf TSpreadsheet::enable_column>)
 | 
						|
  void enable_column(int col, bool on = TRUE);
 | 
						|
  
 | 
						|
  // @cmember Abilita/disabilita una cella dello spreadsheet (vedi <mf TSpreadsheet::enable_cell>)
 | 
						|
  void enable_cell(int row, int column, bool on = TRUE);
 | 
						|
  // @cmember Disabilta una cella dello spreadsheet (chiama <mf TSheet_field::enable>)
 | 
						|
  void disable_cell(int row, int column)
 | 
						|
  { enable_cell(row, column, FALSE); }
 | 
						|
  // @cmember Controlla se una cella e' disabilitata (vedi <mf TSpreadsheet::cell_disabled>)
 | 
						|
  bool cell_disabled(int row, int column) const;
 | 
						|
 | 
						|
  // @cmember Permette di eliminare una colonna dallo spreadsheet
 | 
						|
  void delete_column( const int col ) const;
 | 
						|
  // @cmember Sposta la colonna dalla posizione <p fromindex> alla posizione
 | 
						|
  //          <p toindex>
 | 
						|
  void move_column( const int fromindex, const int toindex ) const;
 | 
						|
  // @cmember Permette di invertire la posizione di due colonne
 | 
						|
  void swap_columns(const int fromid, const int toid) const;
 | 
						|
  // @cmember Permette di invertire la posizione di due righe   
 | 
						|
  void swap_rows( const int fromindex, const int toindex ) ;
 | 
						|
 | 
						|
  // @cmember Setta la larghezza della colonna
 | 
						|
  void set_column_width( const int col, const int width ) const;
 | 
						|
  // @cmember Setta il titolo della colonna
 | 
						|
  void set_column_header( const int col, const TString& header ) const;
 | 
						|
  // @cmember Setta l'allineamento della colonna
 | 
						|
  void set_column_justify(int col, bool right);
 | 
						|
 | 
						|
  // @cmember Setta il member <p _append> con il valore di <p on>
 | 
						|
  void set_append(bool on = TRUE)
 | 
						|
  { _append =  on;}
 | 
						|
  // @cmember Ritorna il valore del mebro <p _append>
 | 
						|
  bool append() const
 | 
						|
  { return _append;}
 | 
						|
 | 
						|
  // @cmember Costruttore
 | 
						|
  TSheet_field(TMask* m);
 | 
						|
  // @cmember Distruttore
 | 
						|
  virtual ~TSheet_field();
 | 
						|
};
 | 
						|
 | 
						|
#endif
 |