#ifndef __TOOLFLD_H
#define __TOOLFLD_H

#ifndef __MASKFLD_H
#include <maskfld.h>
#endif

class TTool_field : public TOperable_field
{
  WINDOW _parent;
  short _cid;

protected:
  virtual void create(WINDOW parent);

public:
  virtual word class_id() const;
  virtual bool is_kind_of(word cid) const;
  virtual WINDOW parent() const { return _parent; }
  virtual short dlg() const { return _cid; }
  virtual void enable(bool on);
  virtual void show(bool on);
  TTool_field(TMask* mask);
};

class TButton_tool : public TTool_field
{
  KEY _exit_key;

protected:
  virtual void parse_head(TScanner& scanner);
  virtual bool parse_item(TScanner& scanner);
  virtual void create(WINDOW parent);
  virtual bool on_key(KEY key);

public:
  virtual word class_id() const;
  virtual bool is_kind_of(word cid) const;
  void set_exit_key(KEY k);
  KEY exit_key() const { return _exit_key; }
  TButton_tool(TMask* mask);
};

#endif