campo-sirio/include/msksheet.h

57 lines
1.4 KiB
C
Raw Normal View History

#ifndef __MSKSHEET_H
#define __MSKSHEET_H
#ifndef __MASK_H
#include <mask.h>
#endif
class TSpreadsheet;
typedef bool (*SPREADSHEET_NOTIFY)(int r, KEY k);
class TSheet_field : public TMask_field
{
TSpreadsheet* _sheet;
TToken_string _head;
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
int first_empty() const; // First empty row
int items() const; // Number of rows
int selected() const; // Number of current row
virtual void reset();
virtual void enable(bool on);
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 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;
TSheet_field(TMask* m);
virtual ~TSheet_field();
};
#endif