1995-08-23 14:33:51 +00:00
|
|
|
#ifndef __MSKSHEET_H
|
|
|
|
#define __MSKSHEET_H
|
|
|
|
|
|
|
|
#ifndef __MASK_H
|
|
|
|
#include <mask.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
class TSheet_field;
|
|
|
|
class TSpreadsheet;
|
|
|
|
|
|
|
|
typedef bool (*SPREADSHEET_NOTIFY)(TSheet_field& s, int r, KEY k);
|
|
|
|
typedef TMask* (*SPREADSHEET_GETMASK)( int numriga, TMask& fullmask, bool destroy );
|
|
|
|
|
|
|
|
|
|
|
|
class TSheet_field : public TMask_field
|
|
|
|
{
|
|
|
|
TSpreadsheet* _sheet;
|
|
|
|
TToken_string _head;
|
|
|
|
bool _append;
|
|
|
|
|
|
|
|
protected:
|
|
|
|
virtual word class_id() const;
|
|
|
|
virtual bool on_hit();
|
|
|
|
virtual bool on_key(KEY k);
|
|
|
|
virtual bool test_focus_change();
|
|
|
|
|
|
|
|
virtual void parse_head(TScanner& scanner);
|
|
|
|
virtual bool parse_item(TScanner& scanner);
|
|
|
|
virtual void create(WINDOW parent);
|
|
|
|
|
|
|
|
virtual void highlight() const;
|
|
|
|
virtual void exchange(bool show_value, const real& n);
|
|
|
|
|
|
|
|
public:
|
|
|
|
TToken_string& row(int n); // Get/Create a new row
|
|
|
|
TString_array& rows_array() const; // Get all rows
|
|
|
|
const char* cell(int r, int c) { return row(r).get(c); } // Get item c of row r
|
|
|
|
|
|
|
|
int first_empty() const; // First empty row
|
|
|
|
int items() const; // Number of rows
|
|
|
|
int selected() const; // Number of current row
|
|
|
|
void select(int r); // Select row r as current
|
|
|
|
|
|
|
|
virtual void reset();
|
|
|
|
virtual void enable(bool on);
|
|
|
|
|
|
|
|
void on_idle();
|
|
|
|
|
|
|
|
void destroy(int r = -1); // Destroy row
|
|
|
|
void force_update(int r = -1);// Update data/screen
|
|
|
|
|
|
|
|
TMask& sheet_mask() const;
|
|
|
|
void set_notify(SPREADSHEET_NOTIFY n);
|
|
|
|
void set_getmask(SPREADSHEET_GETMASK n);
|
|
|
|
|
|
|
|
void enable_column(int col, bool on = TRUE);
|
|
|
|
|
|
|
|
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 delete_column( const int col ) const;
|
|
|
|
void move_column( const int fromindex, const int toindex ) const;
|
|
|
|
void swap_columns(const int fromid, const int toid) const;
|
|
|
|
void swap_rows( const int fromindex, const int toindex );
|
|
|
|
|
|
|
|
void set_column_width( const int col, const int width ) const;
|
|
|
|
void set_column_header( const int col, const TString& header ) const;
|
|
|
|
void set_append(bool on = TRUE) { _append = on;}
|
|
|
|
bool append() const { return _append;}
|
|
|
|
|
|
|
|
TSheet_field(TMask* m);
|
|
|
|
virtual ~TSheet_field();
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|