module widgets {
  
  interface canvas : hush::widget {
  
  	widgets::canvas create( in hush::widget anc, in string path );
  
  	hush::item circle( in long x, in long y, in long radius, in string options );
  	// other items ...
  	};
  
  
  interface message : hush::widget {
  	message create( in hush::widget anc, in string path );
  	void text(in string txt);
  	};
  
  
  interface factory : hush::factory {
  
   	widgets::canvas  canvas(in string name, in string options);
   	widgets::message message(in string name, in string options);
  	};
  
  interface dot : hush::dot {
  
  	widgets::canvas  canvas(in string name);
   	widgets::message message(in string name);
  
  	widgets::factory widgets(in string name);
  	};
  
  
  };
  

slide: module widgets