| 
 Hosted by 
   | 
 
 
 
 
 
 
 
 
with Real_Numbers; use Real_Numbers; 
with Real_Vectors; use Real_Vectors; 
with Gray_Images; use Gray_Images; 
with Glyphs; use Glyphs; 
 
with Strings; use Strings; 
 
package Printers is 
 
    
   type Printer is abstract tagged limited private; 
 
    
   type Printer_Access is access all Printer'Class; 
 
    
   function Get_Filename 
     (This : access Printer)  
     return String;           
 
   function Get_Format 
     (This : access Printer)  
     return String            
     is abstract; 
 
   procedure Set_Bounds 
     (This         : access Printer;  
      Bounds       : in Rectangle;    
      Staff_Height : in Real);        
 
   procedure Print 
     (This   : access Printer;  
      Add    : access Glyph;    
      Center : in Vector)       
     is abstract; 
 
   procedure Frame_Box 
     (This  : access Printer;  
      Box   : in Rectangle;    
      Color : in Gray_Pixel)   
     is abstract; 
 
   procedure Fill_Box 
     (This  : access Printer;  
      Box   : in Rectangle;    
      Color : in Gray_Pixel)   
     is abstract; 
 
   procedure Write 
     (This : access Printer)  
     is abstract; 
 
private 
 
    
   type Printer is abstract tagged limited record 
      Filename : String_Access;  
      Bounds   : Rectangle;      
   end record; 
 
end Printers; 
 |