Handler -- interception
class handler {event* e; public: handler(event* p) : e(p) { g = 0; } virtual ~handler() { delete e; } int info() { return e->info(); } void set(gadget* p ) { g = p; } virtual void operator()() { if (g) g->callback(); } protected: gadget* g; };
handler