A canvas server

  class draw_srv : public canvas {  
  public:
  
  draw_srv( const widget* w,  char* path ) : canvas(w,path) {  
(a)
geometry(200,100); self()->bind(this); dragging = 0; } void press( event& ) { dragging = 1; } void motion( event& e) { if (dragging) circle(e.x(),e.y(),10,"-fill black"); } void release( event& ) { dragging = 0; } protected: int dragging; };

slide: A canvas server