#ifndef _Controller_h #define _Controller_h #pragma interface class Controller { Controller *next_focus; // chain of objects in focus static Controller *focus; void unlink(); protected: static char insert_mode; public: Controller(); static int dokey(int k); void setfocus(Controller *); static Controller *curfocus() { return focus; } bool hasFocus() const { return focus == this; } bool isActive() const { return next_focus != this; } virtual void getfocus() {} virtual void key(int); virtual void cmd(int); virtual int run(); virtual void losefocus() {} virtual ~Controller(); }; #endif