#ifndef __BA1100_H
#define __BA1100_H  

#ifndef __SHEET_H                 
#include <sheet.h>                 
#endif

#include "ba1100a.h"

///////////////////////////////////////////////////////////
// TDir_sheet  
///////////////////////////////////////////////////////////


class TDir_sheet : public TSheet
{
  TTrec  *_rec;
  TDir  *_dir;
  FileDes  _s_dir;
  long  _items;

protected:  set_firm();

  void page_build(long first, byte rows);

public:
  TDir_sheet(const char* title,const char* columns="N.@5|Nome@20|EOD@7|EOX@7|Lung.  |Descrizione@43|Formula@33|Flags@7",byte buttons=0xC);
  ~TDir_sheet();
  TDir* dir() const { return _dir; }
  TTrec* rec() const { return _rec; }
  void set_items(long items) { _items = items; }
  void add();
  void rebuild() { _items = _dir->items();}

  long items() const { return (_items);}
};

class TRec_sheet : public TObject
{
  TTrec         *_rec;
  TTrec         *_rec_old;
  TDir          *_dir;
  bool    _comfile;
  static TMask   *_mask;

protected:
  bool check_key_expr(int key, const char* key_expr);
  static bool fld_notify(int r, KEY k);
  static bool key_notify(int r, KEY k);
  void save();
  virtual long items() const { return _rec->fields(); }

public:
  TRec_sheet(int logicnum);
  ~TRec_sheet();
  TDir* dir() const { return _dir; }
  TTrec* rec() const { return _rec; }
  void edit();

};

class TEdit_file : public TObject
{
protected:
  KEY  edit_record(TRectype& rec, bool readonly = FALSE);

public:
  
  bool browse(int num, const char* name);
  TEdit_file() {}
};

#endif
