interface canvas : widget { 
  
      canvas(char *p, char* options="");
      canvas(widget* w, char *p, char* options="");
      
      void tag(int id, char* tag);
      char* tags(int id);
      
      void move(int id, int x, int y);
      void move(char* id, int x, int y);
      
      item bitmap(int x1, int y1, char* bitmap, char* options="");
      item line(int x1, int y1, int x2, int y2, char* options="");
      item line(char* linespec, char* options="");
      item circle(int x1, int y1, int rad, char* options="");
      item oval(int x1, int y1, int x2, int y2, char* options="");
      item polygon(char* linespec, char* options="");
      item rectangle(int x1, int y1, int x2, int y2, char* options="");
      item text(int x1, int y1, char* txt, char* options=""); 
      item window(int x1, int y1, char* win, char* options="");
      item window(int x1, int y1, widget* win, char* options="");
      
      item current();
      item overlapping(int x, int y);
      
      itemconfigure(int it, char* options);
      itemconfigure(char* tag, char* options);
      itembind(int it, char* s, binding* a, char* args = "" );
      itembind(char* tag, char* s, binding* a, char* args = "" );
      
      void postscript(char* file, char* options="");
  
    protected:
      install(binding*, char* args);
    };
  

slide: The canvas class