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;
|