| 
 Hosted by 
   | 
 
 
 
 
 
 
 
 
with Ada.Tags; use Ada.Tags; 
with Font_Loaders; use Font_Loaders; 
with Printers; use Printers; 
with Lists; 
with Boxes.Measures; use Boxes.Measures; 
 
package Boxes.Staves is 
 
   package Measures_Lists is new Lists(Measure_Box_Access); 
   subtype Measures_List is Measures_Lists.List; 
   subtype Measures_List_Access is Measures_Lists.List_Access; 
 
    
   type Stave_Box is new Box with private; 
 
    
   Stave_Box_Tag : constant String; 
 
    
   type Stave_Box_Access is access all Stave_Box; 
 
    
   function Create 
     return Stave_Box_Access;  
 
    
   function Get_Measures 
     (This : access Stave_Box)     
     return Measures_List_Access;  
 
   procedure Add_Measure 
     (This : access Stave_Box;        
      Add  : in Measure_Box_Access);  
 
   procedure Layout 
     (This : access Stave_Box;     
      Font : access Font_Loader);  
 
   procedure Print 
     (This   : access Stave_Box;           
      To     : access Printer'Class;  
      Center : in Vector);                 
 
private 
 
    
   type Stave_Box is 
     new Box with 
      record 
         Measures : Measures_List_Access;  
      end record; 
 
    
   Stave_Box_Tag : constant String := "boxes.staves.stave_box"; 
 
end Boxes.Staves; 
 |