package Tools.Paintbrushes is
type Paintbrush is new Tool with private;
function Create_Paintbrush( tile : Natural ) return A_Tool;
pragma Postcondition( Create_Paintbrush'Result /= null );
function Get_Tile( this : not null access Paintbrush'Class ) return Natural;
private
type Paintbrush is new Tool with
record
tile : Natural := 0;
overTileX,
overTileY : Integer := -1;
overLayer : Integer := -1;
lastFunc : Function_Type := Primary;
end record;
procedure Construct( this : access Paintbrush; tile : Natural );
procedure Apply( this : access Paintbrush; context : Tool_Context );
function Get_Type( this : access Paintbrush ) return Tool_Type;
end Tools.Paintbrushes;